Pitkä kehitystyö IO_uring zero-copy send Linux-ytimen verkkoalijärjestelmälle on nyt valmis päälinjalle.

Pavel Begunkov on työskennellyt kuukausien ajan IO_uring zero-copy-lähetystuen parissa, ja nyt se kaikki on painettu ja valmis yhdistettäväksi Linux 5.20:ssa. Vertailuarvot ovat näyttäneet hyvältä ja koodi on nyt riittävän kypsä päälinjalle.

Eilestä lähtien”io_uring-zerocopy-send”-tuki oli jonossa net-nextiin seuraavan ytimen yhdistämisikkunan verkkoalijärjestelmän koodiksi.

Packset toteuttaa io_uring zerocopy sendin. Se toimii sekä rekisteröityjen että tavallisten puskureiden kanssa, sekoittaminen on sallittua, mutta ei suositeltavaa. Tavallisten pyyntöjen täydennysten lisäksi, aivan kuten MSG_ZEROCOPY:n kanssa, io_uring ilmoittaa erikseen käyttäjätilalle, kun puskurit vapautetaan ja niitä voidaan käyttää uudelleen (katso API-suunnittelu alla), mikä toimitetaan io_uringin valmistumisjonoon. Nämä”puskurittomat”ilmoitukset eivät välttämättä ole pyyntökohtaisia, mutta käyttäjätila hallitsee sitä, ja sen pitäisi nimenomaisesti liittää useita pyyntöjä yhteen ilmoitukseen. Sarja lisää myös sisäisiä optimointeja, kun sitä käytetään rekisteröityjen puskureiden kanssa, kuten sivuviittausten poistaminen.

Ytimen verkkotoiminnan näkökulmasta on kaksi tärkeintä muutosta. Ensimmäinen on siirtää ubuf_info verkkokerrokseen tiedostosta io_uring (ytimen rakenteen msghdr sisällä). Tämä mahdollistaa lisäoptimointeja, esim. ubuf_info välimuisti io_uring-puolella, mutta auttaa myös välttämään ristiviittauksia ja synkronointiongelmia. Toinen osa on valinnainen optimointi, joka poistaa sivuviittaukset rekisteröityjä puskureita sisältävistä pyynnöistä.

Jonossa osoitteessa for-5.20/io_uring-zerocopy-send ovat ylläpitäjä Jens Axboen jonossa olevia IO_uring-puolen muutoksia. Linux 5.20:sta on tulossa iso ydin.

Jakub yhdisti prep net-sarjan io_uring tx zerocopy-tukea varten:https://t.co/l6Axk5WUr9

ja lavastin loput bitit sen päälle:https://t.co/35veXfsMVM

5.20 muotoutuu hienosti!

— Jens Axboe (@axboe) 20. heinäkuuta , 2022

Categories: IT Info