Vroege patches bieden voor IO_uring zero-copy send-ondersteuning voor het netwerksubsysteem van de Linux-kernel ziet er veelbelovend uit voor een grotere doorvoer.
Ontwikkelaar Pavel Begunkov heeft vandaag de set van twaalf patches gepost die werkt aan deze zero-copy send-ondersteuning voor IO_uring met het netwerksubsysteem. Deze eerste patches zijn gemarkeerd als een”verzoek om commentaar”, omdat sommige items nog met de code worden opgelost.
Deze IO_uring zero-copy send-ondersteuning is momenteel voor IPv4/UDP-verwerking, maar er zijn ook TCP-patches in de maak. Hoewel het werk nog in een vroeg stadium is en in beweging is, hebben de prestatieresultaten ons behoorlijk enthousiast gemaakt over de vooruitzichten:
Benchmarking udp (65435 bytes) met een dummy net-apparaat (mtu=0xffff): de beste case io_uring=116079 MB/s vs msg_zerocopy=47421 MB/s, of 2,44 keer sneller.
….
Het slechtste geval voor io_uring is nog steeds 1,88 keer sneller dan msg_zerocopy, en er zijn een paar”gemakkelijke”optimalisaties weggelaten uit de patchset. Voor een payload van 4096 bytes presteert zc slechts iets beter dan de niet-zc-versie, hoe groter de payload, hoe groter de kloof.
Geweldig om te zien dat al het kernelwerk rond IO_uring gebeurt voor opslag en netwerken. Bekijk deze patchreeks als je geïnteresseerd bent in alle details.