Евгений Христев предлагает заставить Linux заранее отмечать критические области.

В список рассылки разработчиков ядра Linux отправлена серия патчей, предлагающих механизм MEMINSPECT для анализа памяти и отладки. Инициатором выступил инженер Linaro Евгений Христев, который представил 26 изменений для упрощения анализа памяти в Linux.
Идея MEMINSPECT заключается в том, чтобы дать ядру возможность отмечать определенные области памяти для последующего изучения. Эти регионы заносятся в специальную таблицу и могут быть запрошены через API любым драйвером, которому требуется собрать данные о состоянии памяти.
Подход предназначен прежде всего для отладки тех систем, где привычные инструменты не работают. Некоторые устройства не сохраняют содержимое RAM после перезагрузки, что делает pstore бесполезным. Другие не позволяют запускать kexec, из-за чего kdump становится недоступен. MEMINSPECT дает альтернативный путь для сбора сведений о состоянии памяти в подобных условиях.
Механизм способен формировать сокращенный дамп, по смыслу схожий с содержимым /proc/vmcore, но включающий только заранее отмеченные регионы. Такой образ можно загрузить в crash или GDB, что позволяет анализировать сбои без полноценного дампа всей памяти.
Не требуется, чтобы система была рабочей в момент сбора информации. Регистрация необходимых структур выполняется при инициализации MEMINSPECT, после чего механизм может быть использован другими компонентами без дополнительных действий.
Работа развивает идеи из раннего варианта, который ранее публиковался в формате RFC. Новый пакет выглядит более зрелым и структурированным. Разработчики сообщества приглашаются изучить предложение и обсудить дальнейшее развитие механизма.
Подробности доступны в обсуждении на LKML, где представлены все патчи и техническое описание проекта.