Een voorgestelde wijziging voor Linux 7.5 voegt een AVX-512-route toe die maximaal 16 ChaCha-blokken per aanroep kan verwerken. Phoronix meldde op 9 november 2026 dat het patchvoorstel in de wachtrij stond van Eric Biggers’ libcrypto-next-branch en naar verwachting zou worden ingediend voor de mergeperiode van Linux 7.5. Phoronix rapporteerde daarbij een winst tot 99% op een AMD Ryzen AI Max Strix Halo met Zen 5 en tot 39% op Zen 4. Die percentages horen bij specifieke ChaCha-tests, niet bij algemene systeemprestaties. (Phoronix)

Wat verandert de voorgestelde route?

ChaCha is een stroomversleuteling die onder meer in cryptografische software wordt gebruikt. De bestaande AVX-512VL-route verwerkt maximaal acht blokken tegelijk met 256-bits ymm-registers. Het voorstel voegt daar een route aan toe die 512-bits zmm-registers gebruikt voor maximaal 16 blokken. Volgens de patchbeschrijving wordt die route gekozen bij invoer van meer dan acht blokken, afhankelijk van de processorfuncties; de selectie houdt ook rekening met X86_FEATURE_PREFER_YMM.

De 256-bits route had een concrete reden: volgens de patchbeschrijving konden 512-bits instructies op Skylake-X de klokfrequentie van de processor sterk verlagen. De nieuwe route is bedoeld voor processoren waarbij de selectie van instructies de bredere verwerking toelaat.

Wat meten de gemelde prestatiewinsten?

Phoronix rapporteerde tot 99% verbetering in een ChaCha-benchmark op een Ryzen AI Max Strix Halo met Zen 5, met de volledige 512-bits route. Voor Zen 4 meldde Phoronix tot 39% met een 256-bits datapad. De genoemde percentages zijn maxima uit die benchmarks; ze zeggen niet dat Linux, andere programma’s of alle AMD-processoren evenveel sneller worden.

Antonio Quartulli meldde op 25 oktober 2026 een afzonderlijke meting op een Ryzen 9 9950X. Voor chacha_crypt()-invoer van 1 KiB en groter rapporteerde hij een doorvoer van ongeveer 5,2 naar 10,2 GB/s. Op basis van die afgeronde waarden komt de stijging uit op ongeveer 96%. Dit is een aparte meting naast de door Phoronix genoemde test op de Ryzen AI Max Strix Halo. (Bericht van Antonio Quartulli op de Linux-kernelmailinglijst)

Een hogere score voor de ChaCha-functie vertelt iets over die cryptografische bewerking; voor een VPN is de doorvoer van de volledige tunnel de relevante maat.

Wat zeggen de cijfers over OpenVPN en WireGuard?

In hetzelfde mailinglijstbericht beschreef Quartulli ook een virtuele-machinebenchmark rond OpenVPN-data-channel offload. Hij rapporteerde ongeveer 10% meer ChaCha20-Poly1305-doorvoer bij een MTU van 1500 bytes en 35% bij een MTU van 9000 bytes. Dat zijn resultaten voor een andere workload dan de geïsoleerde chacha_crypt()-meting.

Voor WireGuard is de gemelde winst van 99% geen maat voor de doorvoer van een volledige tunnel: die benchmark betreft de ChaCha-bewerking zelf. Een meting van de cryptografische functie kan dus niet zonder meer worden vertaald naar dezelfde winst in een VPN-verbinding.

Welk testwerk stelde Quartulli voor?

Naast zijn implementatievoorstel beschreef Quartulli een afzonderlijke KUnit-test- en benchmarkpatch. Die vergeleek chacha_crypt() met chacha_block_generic(), met vaste invoerlengtes tot 4100 bytes en willekeurige lengtes tot 12 KiB. De voorgestelde tests omvatten ook guard pages, aanroepen die gegevens ter plekke versleutelen of in delen verwerken, en de testvector uit RFC 7539.

Quartulli meldde dat hij zijn dubbele implementatiepatch introk ten gunste van de aanpak van Martin Willi. De KUnit-test- en benchmarkpatch was een afzonderlijk voorstel. (Bericht van Antonio Quartulli op de Linux-kernelmailinglijst)