Linux 7.3: Optymalizacje dla ARM64 i nowe rozwiązania dla najnowszych procesorów
Linux wciąż ewoluuje w tle, korygując błędy, dostosowując się do nowego sprzętu i czyniąc system coraz bardziej stabilnym dla milionów użytkowników na całym świecie. Wiele z tych usprawnień nie jest widoczne dla użytkownika komputera na co dzień, ale są one kluczowe dla poprawnego działania jądra i efektywnego zarządzania zasobami systemowymi. Dobrym przykładem jest Linux 7.3.
Ulepszenia dla architektury ARM64
W tej nowej wersji, rozwój ARM64 zyskuje kilka istotnych ulepszeń, po tym jak Linux 7.2 ledwie wprowadzał nowości dla tej architektury. Jedną z najbardziej znaczących jest usprawniona obsługa pamięci dzięki technologii BBML3, zaprojektowanej w celu zwiększenia efektywności pewnych wewnętrznych zmian związanych z tabelami stron.
Tabelę stron wykorzystuje system do tłumaczenia wirtualnych adresów, z których korzystają programy, na fizyczne lokalizacje w pamięci. ARM64 zmienia sposób zarządzania tymi tabelami.

BBML3: Efektywniejsze zarządzanie pamięcią
BBML3 oznacza Break-Before-Make Level 3 i jest to nowsza funkcja architektury AArch64. Jej zadaniem jest optymalizacja przejść podczas modyfikacji wpisów w tabelach stron. Kiedy Linux musi zmienić przypisanie pamięci, nie wystarczy po prostu zastąpić wpis. Architektura wprowadza mechanizmy zapobiegające niespójnym stanom podczas tej transakcji. BBML3 pozwala na wykonywanie tych operacji w bardziej efektywny sposób, zastępując kod, który jądro wykorzystywało do tej pory, oparty na BBML2-noabort.
Oczekiwany efekt to nie nagły wzrost szybkości komputera ani zauważalne zmniejszenie zużycia pamięci RAM. Ulepszenie dotyczy wewnętrznego działania jądra, gdzie zoptymalizowane zarządzanie tymi transakcjami może przynieść korzyści zarówno w zarządzaniu pamięcią, jak i w operacjach wykonywanych przez hiperwizory maszyn wirtualnych.

Praca dla nowych procesorów ARM
Wersja Linux 7.3 dla ARM64 nie ogranicza się tylko do BBML3. Jądro zawiera również rozwiązanie problemu wykrytego w rdzeniach Olympus firmy NVIDIA, używanych w procesorach Vera. Błąd dotyczył kolejności wykonywania pewnych operacji pamięci na urządzeniach i mógł pozostawić urządzenie w nieprawidłowym stanie. Linux wprowadza specjalną barierę pamięci przed pewnymi odczytami MMIO, aby uniknąć tego zachowania.
Przygotowano również poprawki dla problemów sprzętowych związanych z AWS Graviton5 i NVIDIA Olympus w podsystemie wydajności ARM64. Dodatkowo, dodano obsługę DDR PMU dla SoC Marvell CN20K, wraz z innymi dostosowaniami i poprawkami przeznaczonymi dla najnowszego sprzętu ARM. Istnieje również zmiana związana z Branch Target Identification (BTI) w jądrze. W niektórych ostatnich wersjach kompilatora LLVM/Clang, ARM64 dezaktywuje jego użycie w jądrze z powodu problemów, które wciąż są badane.