La proposta per Linux 7.5 aggiunge alla cifratura ChaCha una nuova routine AVX-512, capace di elaborare fino a 16 blocchi per chiamata invece degli otto gestiti al massimo dal percorso precedente. Phoronix ha riportato miglioramenti fino al 99% su un AMD Ryzen AI Max Strix Halo con Zen 5 e fino al 39% su Zen 4: percentuali riferite a specifici test ChaCha, non alla velocità complessiva di un PC o di un’applicazione. Phoronix

Nel resoconto pubblicato il 9 novembre 2026, Phoronix riferiva che la patch di Martin Willi era in coda nel ramo libcrypto-next gestito da Eric Biggers e che se ne prevedeva l’invio per la finestra di integrazione di Linux 7.5.

Un risultato ottenuto sulla routine ChaCha descrive quel carico di lavoro: per capire l’effetto su un’applicazione conta anche misurare l’applicazione nel suo insieme.

Che cosa cambia con 16 blocchi per chiamata

ChaCha è un cifrario a flusso: cifra i dati elaborandoli in blocchi. La routine AVX-512 precedente processava fino a otto blocchi alla volta usando registri ymm da 256 bit. La proposta aggiunge un percorso con registri zmm da 512 bit, che può lavorare su un massimo di 16 blocchi per chiamata.

La descrizione della patch colloca il nuovo percorso sulla selezione avx512vl e lo riserva ai dati che superano otto blocchi. Specifica anche che il codice non viene usato sui processori che impostano X86_FEATURE_PREFER_YMM. Per carichi più brevi o in presenza di quella preferenza, la nuova routine non è il percorso selezionato.

La scelta dei 256 bit aveva una ragione concreta: nella descrizione della patch, Willi spiegava che le istruzioni zmm provocavano una forte riduzione della frequenza dei core su Skylake-X. Il percorso più largo è pensato per processori AVX-512 più recenti, per i quali quella penalità non si presenta secondo la descrizione citata da Phoronix.

Che cosa misurano i risultati su ChaCha

Phoronix ha riportato un miglioramento fino al 99% con la routine a 512 bit su un Ryzen AI Max Strix Halo con architettura Zen 5. Per Zen 4 ha indicato un aumento fino al 39% con un percorso dati a 256 bit. Sono risultati di benchmark ChaCha, legati ai rispettivi sistemi e percorsi; non descrivono un aumento analogo in ogni uso di Linux o AVX-512. Phoronix

Un messaggio separato di Antonio Quartulli, pubblicato nella mailing list del kernel il 25 ottobre 2026, riporta una misura su un AMD Ryzen 9 9950X. Per chacha_crypt() con input da 1 KiB in su, Quartulli ha indicato un passaggio da circa 5,2 a 10,2 GB/s. Il calcolo sui valori arrotondati corrisponde a un aumento di circa il 96%. Il messaggio descrive una prova distinta da quella sul Ryzen AI Max Strix Halo. Messaggio di Antonio Quartulli nella mailing list del kernel

OpenVPN e i test KUnit proposti

Nel contesto del lavoro sull’offload del canale dati di OpenVPN, Quartulli ha riportato anche un test in macchina virtuale: la velocità di ChaCha20-Poly1305 sarebbe aumentata di circa il 10% con MTU di 1.500 byte e del 35% con MTU di 9.000 byte. Sono misure riferite a quel carico e a quelle dimensioni dei pacchetti, non una previsione del throughput di qualsiasi tunnel VPN. Messaggio di Antonio Quartulli nella mailing list del kernel

La sua serie proponeva inoltre test e benchmark KUnit separati per chacha_crypt(). La verifica confrontava i risultati con chacha_block_generic() e includeva lunghezze fino a 4.100 byte, input casuali fino a 12 KiB, pagine di guardia, chiamate in-place e suddivise, oltre al vettore di prova RFC 7539. Quartulli dichiarò di ritirare la propria patch d’implementazione duplicata in favore dell’approccio di Willi; la proposta di test era distinta.