Исправление критического бага в ядре Linux 6.19

Недавно в ядре Linux была обнаружена ошибка, которая существовала на протяжении нескольких лет в критически важной части системы — обработке page fault для архитектуры x86. Эта проблема заключалась в том, что прерывания отключались не всегда так, как это было задумано. Исправление ошибки уже включено в версию Linux 6.19, а также планируется его портирование в более старые версии.

Инициатором решения проблемы стал инженер Intel Седрик Синь, который выявил дефект в коде обработки исключений. Важным аспектом стало то, что предыдущая логика обработки не учитывала все сценарии, что приводило к асимметрии в поведении системы. Инженеры решили больше не пытаться исправлять все ветвления, а вместо этого приняли решение об отключении прерываний в одном четком месте перед возвратом к обработчику.

Эта ошибка восходит к изменениям, внесенным в ядро во время merge window версии 5.8 в 2020 году. Теперь, с исправлением, поведение ядра станет более предсказуемым в редких, но потенциально опасных ситуациях.

Понравилась статья? Поделиться с друзьями:
Сайт для студентов