Kikerül a UDP-Lite a Linux 7.1 verziótól a kernelből, a hálózati kód egyszerűbb és gyorsabb lehet

A Linux hálózati alrendszerének következő nagyobb kódtisztítása a UDP-Lite búcsúját hozhatja el. A protokoll támogatása még a Linux 2.6.20 verzió idején került be a kernelbe, és arra szolgált, hogy részleges ellenőrzőösszegekkel dolgozzon, vagyis bizonyos sérült csomagokat is tovább tudjon adni az alkalmazásnak teljes eldobás helyett. A net-next ágba már bekerült javítássorozat alapján a fejlesztők a Linux 7.1 fejlesztési ciklusában végleg kivezetnék ezt a régi protokollt, mert hosszú ideje gyakorlatilag használaton kívül van, viszont potenciális hibaforrás maradt, és felesleges többletterhet rakott a UDP feldolgozására.

Kikerül a UDP-Lite a Linux 7.1 verziótól a kernelből, a hálózati kód egyszerűbb és gyorsabb lehet

Egy régóta magára hagyott protokoll története ér véget a Linux 7.1 kernellel

Kuniyuki Iwashima a netdev listán írt bejelentésében úgy fogalmazott, hogy 2023-ban a syzbot egy nullpointer-hibát talált a UDP-Lite memóriakezelésében. A fejlesztő szerint a hiba 2016 óta jelen volt, és mivel a UDP-Lite ugyanazt a rendszerszintű memóriahatárt használta mint a hagyományos UDP, ezt a gondot könnyen elő lehetett volna idézni, ha a protokollt valódi környezetben bárki szélesebb körben használja. A levél szerint azonban csak a syzbot futott bele, ami erős jelzés volt arra, hogy a UDP-Lite hosszú ideje gyakorlatilag parlagon áll. A hibát végül javították, 2023-ban azonban a kernelben már megjelent egy figyelmeztetés arra vonatkozóan, hogy a UDP-Lite támogatását később kivezetik.

Jelen állapot szerint a 15 elemből álló javítássorozat 2026. március 14-én bekerült a netdev/net-next.git fő ágába. A patch sorozat előbb az IPv6-os és IPv4-es UDP-Lite socketeket szedi ki, majd sorban kivezeti a megmaradt statisztikai, részleges ellenőrzőösszeggel kapcsolatos és egyéb, már feleslegessé vált kódrészeket is.

A kivezetés jelentős teljesítménynövekedést is hozhat a hálózati kódban

A módosítás egyik kedvező következménye, hogy az előzetes fejlesztői mérések szerint a feleslegessé vált kódrészek eltávolítása érezhető gyorsulást hozott. Iwashima adatai alapján az udp_rr tesztben, 20 000 folyammal, az AMD EPYC 7B12 platformon a teljesítmény 13,3 Mpps-ről 14,7 Mpps-re emelkedett, ami nagyjából 10 százalékos növekedésnek felel meg. FDO használata mellett a különbség visszafogottabb volt, de ott is 20,1 Mpps-ről 20,7 Mpps-re nőtt az érték, vagyis mintegy 3 százalékos javulás látszott. Ennek oka, hogy a UDP gyors feldolgozási útvonalából több, kizárólag a UDP-Lite támogatása miatt fenntartott feltétel és kezelési ág is kikerülhet.

További részletek a commitban olvashatóak.