Инженер-программист Google Паша Таташин предложил Page Detective в качестве нового инструмента для отладки ядра, который может предоставить более подробную информацию об использовании и отображении страниц физической памяти.
Исходный код Page Detective был опубликован в форме «Запрос на комментарии» и использует интерфейс Linux DebugFS для получения информации о виртуальных и физических адресах.
Эта информация, предоставляемая Page Detective, может помочь разработчикам и администраторам серверов понять, как система использует страницы памяти, например, при возникновении проблем с памятью, сбоях контрольной суммы во время миграции в реальном времени, сбоях журнала файловой системы, ошибках сегментации и других возможных случаях повреждения памяти.
«Page Detective — это инструмент отладки ядра, предназначенный для предоставления подробной информации об использовании и сопоставлении страниц физической памяти в ядре Linux. Используя интерфейс debugfs, он позволяет администраторам и разработчикам исследовать состояние и распределение страниц памяти.
Этот инструмент полезен для диагностики проблем, связанных с памятью, таких как ошибки контрольной суммы при миграции в реальном времени, сбои в журнале файловой системы, ошибки сегментации и другие виды повреждения.”
Патчи RFC для детектора страниц Linux были опубликованы сегодня в списке рассылки ядра Linux. Паша далее объясняет в сопроводительном письме к патчу:
«Page Detective — это новый инструмент для отладки ядра, который предоставляет подробную информацию об использовании и сопоставлении страниц физической памяти.
Часто известно, что конкретная страница повреждена, но сложно получить дополнительную информацию о такой странице из работающей системы. Примеры:
Page Detective помогает извлечь больше информации из ядра, поэтому разработчики могут использовать его для поиска первопричины связанной с ним проблемы.
Он работает через интерфейс Linux debugfs с двумя файлами: «virt» и «phys»:
Вывод отображается в сообщениях журнала ядра (доступен с помощью dmesg) и включает такую информацию, как количество ссылок на страницу, сопоставление, флаги и cgroup памяти. Он также показывает, сопоставлена ли страница в таблице страниц ядра и если да, то сколько раз.
Будет интересно посмотреть, к чему приведёт работа Page Detective и будет ли она интересна другим заинтересованным сторонам в текущей форме, чтобы её можно было включить в основное ядро Linux.