Cel pola „błędów” w /proc/cpuinfo
opisanym w komunikacie zatwierdzenia, który go wprowadził :
x86/cpufeature
: Dodaj flagi błędów do /proc/cpuinfo
Zrzuć flagi, które wskazują, że wykryliśmy i / lub zastosowaliśmy obejścia błędów dla procesora, na którym wykonujemy, w podobny sposób jak flagi funkcji.
Zaletą jest to, że nie kumulują się one z czasem, podobnie jak funkcje procesora.
Wcześniej błędy sprzętowe wykryte przez jądro były wymienione jako osobne funkcje ( np . Niesławny błąd F00F, który ma swój własny f00f_bug
wpis w /proc/cpuinfo
32-bitowych systemach x86). Wpis „błędy” został wprowadzony, aby utrzymać je w jednej funkcji idącej naprzód, w tym samym stylu co flagi procesora x86 .
O ile wpisy w praktyce oznaczają, jak widać w komunikacie, wszystko, co gwarantuje, to że jądro wykryło błąd sprzętowy. Musisz szukać gdzie indziej (komunikaty rozruchowe lub określone /proc
wpisy lub /sys
wpisy, takie jak pliki w /sys/devices/system/cpu/vulnerabilities/
), aby ustalić, czy problemy zostały rozwiązane.
Przydatność wpisów „błędów” jest ograniczona na dwa sposoby. Po pierwsze, prawdziwych negatywów nie można odróżnić od nieznanych: jeśli pole nie określa „cpu_meltdown”, nie możesz (tylko z pola) wiedzieć, czy to oznacza, że jądro nie wie o Meltdown lub że na procesor nie ma wpływu Meltdown. Po drugie, wykrywanie może być zbyt uproszczone; zachowuje ostrożność, więc może zgłosić, że twój procesor jest podatny na zagrożenia, gdy nie jest. Ponieważ „wykrywanie” zależy od tabeli, jego dokładność zależy od używanej wersji jądra.
W przypadku błędów Meltdown i Spectre proces wykrywania, który podaje wartości w /proc/cpuinfo
następujący sposób , działa na x86:
- jeśli procesor nie wykonuje żadnych spekulacji (klasa 486, niektóre klasy Pentium, niektóre atomy), nie jest oznaczany jako zmieniony przez Meltdown lub Spectre;
- wszystkie pozostałe procesory są oznaczone jako warianty Spectre 1 i 2 (niezależnie od wersji mikrokodu itp.);
- jeśli CPU nie jest wymieniony jako niewrażliwy na spekulacyjne obejście sklepu , jeśli jego mikrokod nie twierdzi, że ogranicza SSB, a jeśli CPU nie twierdzi, że ogranicza SSB, oznacza to, że ma wpływ SSB;
- jeśli procesor nie jest wymieniony jako niewrażliwy na Meltdown (AMD) i jeśli jego mikrokod nie twierdzi, że łagodzi Meltdown, oznacza to, że ma wpływ na Meltdown.