Механизм KFence будет находить ошибки при работе с памятью ядра Linux 5.12

Механизм проверки работы с памятью KFence добавили в состав разрабатываемого ядра Linux 5.12, 1 марта сообщает сайт git.kernel.org.
Эта система будет отслеживать выход за границы буферов, обращение к памяти после освобождения и другие подобные ошибки.
Похожие опции уже были в ядре в качестве одного из видов сборки KASAN (kernel address sanitizer). Но эта технология использовалась по большей части для отладочных работ. KFence работает на высокой скорости, что делает возможным применять ее в ядрах рабочих систем.
KFence сможет находить ошибки, которые не видны в тестах ядра и обнаруживаются в рабочем процессе. Использование механизма поможет увеличить число систем, проверяющих работу ядра с памятью.
Минимальные накладные расходы, которые не зависят от нагрузки, обеспечиваются в KFence через подстановку границ защиты (guard pages) и с помощью фиксированных интервалов.
Механизм по умолчанию не блокирует ошибку, когда находит ее, а выводит предупреждение о ней. Однако есть и настройка «paniconwarn», с помощью которой можно перевести ядро в состояние краха (panic), если будет обнаружена ошибка.