Намір поля «помилки» /proc/cpuinfo
описаний у повідомленні про компіляцію, яке його ввело :
x86/cpufeature
: Додати прапори помилок у /proc/cpuinfo
Скиньте прапори, які позначають, що ми виявили та / або застосували вирішення помилок до ЦП, який ми виконуємо, аналогічно прапорам функцій.
Перевага полягає в тому, що вони не накопичуються з часом, як функції процесора.
Раніше апаратні помилки, які було виявлено ядром, були перераховані як окремі функції ( наприклад, сумнозвісна помилка F00F, яка має власний f00f_bug
запис у /proc/cpuinfo
32-бітних системах x86). Запис «помилок» був введений, щоб вони містили одну функцію вперед, у тому ж стилі, як прапорці процесора x86 .
Що стосується того, що означають записи на практиці, як ви бачите в повідомленні, все, що гарантовано - це те, що ядро виявило апаратну помилку. Вам потрібно буде шукати в іншому місці (повідомлення про завантаження або конкретні /proc
записи або /sys
записи, такі як файли /sys/devices/system/cpu/vulnerabilities/
), щоб визначити, чи вирішуються проблеми.
Корисність записів "помилок" обмежена двома способами. Перший полягає в тому, що справжні негативи не можна відрізнити від невідомих: якщо поле не вказує "cpu_meltdown", ви не можете знати (лише з поля), чи означає це, що ядро не знає про Meltdown, або що на ваш процесор не впливає Meltdown. Друга полягає в тому, що виявлення може бути занадто спрощеним; вона помиляється з боку обережності, тому може повідомити, що ваш процесор вразливий, коли його немає. Оскільки "виявлення" керується таблицею, його точність залежить від того, яку версію ядра ви використовуєте.
У випадку помилок Meltdown та Spectre процес виявлення, який подає значення, /proc/cpuinfo
працює наступним чином на x86:
- якщо центральний процесор не виконує жодних спекуляцій (клас 486, певний клас Pentium, деякі атоми), він не позначений як Meltdown або Spectre;
- всі залишки процесора позначені як такі, що впливають на варіанти 1 та 2 Spectre (незалежно від перегляду мікрокоду тощо);
- якщо CPU не вказаний як не сприйнятливий до умоглядного обходу магазину , якщо його мікрокод не претендує на пом'якшення SSB, а якщо CPU не вимагає пом'якшення SSB, то він позначається як впливає SSB;
- якщо процесор не вказаний як не сприйнятливий до Meltdown (AMD), і якщо його мікрокод не претендує на пом'якшення Meltdown, він позначений як такий, на який впливає Meltdown.