Uma proposta para o kernel Linux 7.5 acrescenta uma rota AVX-512 capaz de processar até 16 blocos ChaCha por chamada, ante o máximo de oito da rota anterior. Phoronix relatou ganhos de até 99% em um AMD Ryzen AI Max Strix Halo com Zen 5 e de até 39% em Zen 4. Os percentuais se referem a testes de ChaCha em configurações específicas.
Em reportagem publicada em 9 de novembro de 2026, Phoronix informou que o patch de Martin Willi estava na fila do branch libcrypto-next, mantido por Eric Biggers, com previsão de envio para a janela de integração do Linux 7.5.
Para estimar o efeito numa VPN, considere o desempenho do túnel completo, não apenas a velocidade isolada da rotina ChaCha.
O que muda ao processar 16 blocos
A implementação anterior usa registradores ymm de 256 bits e processa até oito blocos por vez. A proposta acrescenta uma variante que usa registradores zmm de 512 bits e pode lidar com até 16 blocos por chamada. A descrição do patch prevê selecioná-la para entradas maiores que oito blocos, conforme as condições de suporte do processador e a configuração X86_FEATURE_PREFER_YMM.
A escolha de 256 bits tinha uma razão prática: segundo a descrição do patch, instruções zmm provocavam uma forte redução da frequência dos núcleos no Skylake-X. A nova variante amplia o processamento paralelo para cargas maiores; isso, por si só, não significa que todos os programas executados em processadores AMD ficarão mais rápidos.
O que medem os resultados de desempenho
O resultado de até 99% divulgado por Phoronix corresponde a um teste de ChaCha no AMD Ryzen AI Max Strix Halo, com Zen 5 e a rota completa de 512 bits. Para Zen 4, a publicação relatou até 39% com uma rota de 256 bits. Esses números descrevem resultados máximos em testes da função criptográfica, não ganhos gerais de CPU ou de aplicativos.
Uma medição separada aparece numa mensagem de Antonio Quartulli, datada de 25 de outubro de 2026. Ele relatou que chacha_crypt() passou de cerca de 5,2 para 10,2 GB/s em um AMD Ryzen 9 9950X, para entradas de 1 KiB ou mais. A diferença entre esses valores arredondados equivale a aproximadamente 96%. A mensagem de Quartulli na lista do kernel trata de uma medição distinta da publicada por Phoronix; os resultados não devem ser reunidos como se viessem do mesmo teste.
O resultado de OpenVPN e a proposta de testes KUnit
Na mesma mensagem, Quartulli relatou ganhos de vazão de cerca de 10% em uma máquina virtual com MTU de 1.500 bytes e de 35% com MTU de 9.000 bytes, em testes ligados ao trabalho de offload do canal de dados do OpenVPN. São resultados de um workload de VPN; não equivalem ao desempenho de uma conexão WireGuard nem medem, por si sós, o efeito da implementação de Willi.
Quartulli também descreveu uma proposta separada de testes e benchmarks com KUnit. O plano incluía comparar chacha_crypt() com chacha_block_generic(), testar comprimentos de até 4.100 bytes e comprimentos aleatórios de até 12 KiB, além de páginas de guarda, chamadas no mesmo buffer, chamadas divididas e o vetor de teste RFC 7539. Quartulli retirou seu patch de implementação duplicado em favor da abordagem de Willi e pediu que o patch de testes fosse considerado separadamente.