technologia

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: 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

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.