O subsistema de criptografia do kernel Linux está prestes a receber um salto expressivo de desempenho para cargas de rede e armazenamento. Uma nova série de patches desenvolvida pelo engenheiro Martin Willi (da equipe do strongSwan) e enfileirada na ramificação libcrypto-next de Eric Biggers para o Linux 7.5 introduz uma implementação de 16 blocos em paralelo para a cifra de fluxo ChaCha utilizando instruções AVX-512 com registradores completos de 512 bits (zmm).

Historicamente, o código AVX-512 da cifra ChaCha no kernel era deliberadamente restrito ao subconjunto AVX-512VL, processando no máximo 8 blocos por vez com registradores de 256 bits (ymm). A limitação existia como medida defensiva para contornar a severa queda de frequência (down-clocking térmico) que afetava processadores Intel antigos de primeira geração ao executarem instruções vetoriais largas de 512 bits.

Ganhos de rendimento no libcrypto: a arquitetura AMD Zen 5 atinge quase o dobro da velocidade (+99%) ao explorar a largura nativa de 512 bits. Fonte: Phoronix / Martin Willi.

Como os processadores modernos — com destaque para as arquiteturas AMD Zen 5 (como os chips Ryzen 9000 e Ryzen AI Max) — operam com pipelines nativos de 512 bits sem penalidades de desaceleração de clock, o novo código elimina esse gargalo. Para transferências volumosas acima de 8 blocos (512 bytes), a nova rotina é acionada automaticamente, praticamente dobrando o paralelismo de dados.

Em testes comparativos, o rendimento da cifra alcançou até 99% de aumento de velocidade na arquitetura Zen 5 e 39% de ganho no Zen 4 (que processa 512 bits em duplo ciclo). A melhoria beneficia diretamente túneis de redes privadas virtuais baseadas em WireGuard, volumes de disco criptografados via Adiantum/dm-crypt e o gerador de números aleatórios criptográficos do próprio kernel.