Propozycja dla jądra Linux 7.5 dodaje ścieżkę AVX-512, która ma przetwarzać do 16 bloków ChaCha podczas jednego wywołania. Phoronix podał, że na AMD Ryzen AI Max Strix Halo z Zen 5 odnotowano w teście ChaCha wzrost wydajności do 99%, a na Zen 4 do 39% przy ścieżce 256-bitowej. To wyniki konkretnych testów szyfru, nie ogólna obietnica przyspieszenia procesora ani aplikacji. Phoronix informował również 9 listopada 2026 r., że patch znajdował się w gałęzi libcrypto-next i miał zostać zgłoszony do okna scalania Linux 7.5.

Co zmienia ścieżka 16 bloków

ChaCha to symetryczny szyfr strumieniowy, używany tu w bibliotece kryptograficznej jądra Linux. Dotychczasowa ścieżka AVX-512VL przetwarzała maksymalnie osiem bloków naraz, korzystając z 256-bitowych rejestrów ymm. Proponowana implementacja używa 512-bitowych rejestrów zmm i ma obsługiwać do 16 bloków podczas jednego wywołania.

Opis patcha przewiduje wybór nowej ścieżki dla wejść większych niż osiem bloków, zależnie od wyboru funkcji procesora. Szersze przetwarzanie może więc zwiększyć równoległość dla dużych porcji danych, ale sam podwojony limit bloków nie oznacza podwojenia wydajności każdej aplikacji.

Martin Willi uzasadniał wcześniejszą szerokość 256-bitową problemem z procesorami Skylake-X: instrukcje 512-bitowe powodowały na nich znaczne obniżenie taktowania rdzeni. Według opisu patcha ta kara nie występowała już w nowszych układach AVX-512, co pozwalało rozważyć pełne 512 bitów.

Co mierzą wyniki ChaCha

Wynik do 99% dotyczy testu ChaCha na Ryzen AI Max Strix Halo z Zen 5 i pełną ścieżką 512-bitową. Podane przez Phoronix do 39% na Zen 4 odnosi się do ścieżki 256-bitowej. Żadna z tych liczb nie opisuje ogólnej wydajności procesora, gier ani dowolnego programu korzystającego z Linuksa.

Osobny pomiar opisał Antonio Quartulli w wiadomości na liście dyskusyjnej jądra z 25 października 2026 r. Dla chacha_crypt() na Ryzen 9 9950X, przy wejściach o wielkości co najmniej 1 KiB, podał przepustowość rosnącą z około 5,2 do 10,2 GB/s. Te zaokrąglone wartości odpowiadają wzrostowi o około 96%. Quartulli wskazał inny procesor i osobny pomiar niż Phoronix, więc tych wyników nie należy łączyć w jeden test. Szczegóły podał w wiadomości na liście dyskusyjnej.

Wynik testu samego szyfru traktuj jako pomiar tej operacji, a nie prognozę dla całego systemu lub tunelu VPN.

Jak odnieść te liczby do OpenVPN i WireGuard

Quartulli opisał także pomiary maszyny wirtualnej związane z pracami nad offloadem kanału danych OpenVPN. Podał wzrost przepustowości ChaCha20-Poly1305 o około 10% przy MTU 1500 bajtów i 35% przy MTU 9000 bajtów. Są to wartości z osobnego testu VM, nie wynik, który można przypisać bezpośrednio ścieżce zaproponowanej przez Williego.

Szybsze wykonanie ChaCha nie przekłada się automatycznie na taki sam wzrost przepustowości całego tunelu WireGuard. Test funkcji szyfrującej i pomiar transmisji przez VPN obejmują różny zakres pracy; same wyniki ChaCha nie określają więc wydajności całego tunelu.

Osobna propozycja testów KUnit

Wiadomość Quartulliego opisywała również odrębny patch z testami i benchmarkiem KUnit dla chacha_crypt(). Zakładał on porównania z chacha_block_generic() dla długości do 4100 bajtów oraz losowych wejść do 12 KiB. Wymieniał też strony ochronne, wywołania in-place i podzielone oraz wektor testowy RFC 7539.

Quartulli wycofał własny, powielający implementację patch na rzecz podejścia Martina Williego; osobno zapytał o rozpatrzenie patcha z testami KUnit.