Vaikka Linux 6.4:n yhdistämisikkuna sulkeutuu tänä viikonloppuna, Jens Axboe lähettää tänään kauden viimeisenä kokonaisena FMODE_NOWAIT-tuen suureksi suorituskyvyn ja tehokkuuden parannukseksi.
Pippujen korjausten FMODE_NOWAIT-tuen aiemman ilmentymän myötä Axboe selitti:
“Yksi asia, joka on aina ollut hieman hitaampaa kuin haluaisin io_uringin kanssa, on putkien tekeminen. Ne eivät tue IOCB_NOWAITia, joten meidän täytyy puntata ne io:lle-wq käsittelyyn. Tämä sarja lisää FMODE_NOWAIT-tuen putkiin.”
Mutta se, missä asiat todella muuttuvat villiksi, on sen tuottaman suorituskyvyn/tehokkuuden laajuus:
“Utelias, miten Suuri ero tällä on, kirjoitin pienen vertailuarvon, joka yksinkertaisesti avaa 128 putkea ja tekee sitten 256 luku-ja kirjoituskierrosta niille. Tämä ajettiin 10 kertaa, jolloin ensimmäinen ajo hylättiin, koska se on aina hieman hitaampi. Ennen korjausta:
Keskiarvo: 262,52 ms
Stdev: 2,12 ms
Minimi: 261,07 ms
Max 267,91 msja korjaustiedoston jälkeen:
Keskiarvo: 24,14 ms
Stdev: 9,61 ms
min: 17,84 ms
>Max: 43,75 mstai noin 10-kertainen suorituskyvyn (ja tehokkuuden) parannus.
Ajoin paikat ltp-putki-ja liitostestien läpi, regressioita ei havaittu. Tarkasteltaessa io_uring traces-jäljitystä voimme nähdä, että meillä ei ole enää io_uring_queue_async_work() jälkiä korjaustiedoston jälkeen, missä aiemmin kaikki tehtiin io-wq:n kautta.”
Hän myöhemmin lisätty tähän korjaustiedostosarjaan:
“Yllä oleva testi oli, että putki oli tyhjä, kun luku suoritetaan, jos testiä muutetaan niin, että sillä on tiedot milloin, niin se näyttää vielä paremmalta:
Ennen:
Keskim.: 249,24 ms
Stdev: 0,20 ms
Minimi: 248,96 ms
Maksimi: 249,53 msJälkeen:
Keskim.: 10,86 ms
Stdev: 0,91 ms
Minimi: 10,02 ms
Max: 12,67 mstai noin 23-kertainen parannus.”
Linux 6.4:ään yhdistämiseen asetetut korjaustiedostot asettivat FMODE_NOWAIT-tuen putkille, mutta poistavat sen käytöstä, jos liitos/vmsplice putkessa. Tämä vetopyyntö on nyt odottaa putken FMODE_NOWAIT-tukea.