Назначение поля «ошибки» /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 следующим образом :
Уязвимости Meltdown / Spectre связаны с дизайном / архитектурой набора микросхем ЦП, и, если не покупать новое оборудование в будущем, исправления являются хорошей иллюзией безопасности в долгосрочной перспективе . Со временем могут появиться новые методы использования недостатков, которые могут обойти текущие исправления.
Короче говоря, текущие программные исправления / микрокоды смягчают проблемы, связанные с известными методами эксплойтов семейства Spectre / Meltdown, но не решают проблем проектирования базовых процессоров, которые в первую очередь разрешают их. Пострадавшие (несколько поколений) процессоров не перестали быть уязвимыми в долгосрочной перспективе (и, скорее всего, никогда не будут).
Тем не менее, как правильно утверждает @Gilles, наличие этого предупреждения не означает, что текущие известные эксплойты будут использовать методы Spectre / Meltdown; они не будут работать, если патчи установлены.
В случае, упомянутом в вопросе, ядро проверяет только те модели процессора, о которых известно, что на них влияет Specter / Meltdown (пока все процессоры x86, если речь идет только о x86), и, следовательно, они
cpu-insecure
все еще перечислены в разделе об ошибках. / строка в/proc/cpuinfo
.PS. Уже был раунд обновлений для нового метода для использования "ошибок" Spectre / Meltdown. Вероятно, не в последний раз.
источник
/proc/cpuinfo
даже если они полностью устранены программным исправлением. Их присутствие не означает, что ваша система уязвима для этой конкретной ошибки.bugs
линейных шоу, и это просто неправильно. Большинство ошибок проектирования ЦП имеют полный программный обход, который стоит лишь небольшой производительности. Если ядро применяет обходной путь, то ошибка безвредна.