Какова в настоящее время передовая практика для сбора трассировки полного стека ядра в системе Linux (RHEL 5.x, ядро 2.6.18), которая иногда вызывает панику в драйвере устройства?
Я привык к «старому» способу работы SunOS - аварийные дампы записываются в раздел подкачки, а при перезагрузке дамп загружается в локальную файловую систему. man 8 crash
относится к diskdump
, но похоже, что это не поддерживается. и / или не рекомендуется.
Я играл с kdump
, но неясно, могу ли я получить от этого трассировку стека. Вызов паники через Magic SysRq не создавал ее. Также кажется расточительным резервировать столько памяти (128 МБ) только для kexec
аварийное восстановление ядра.
Если вы хотите регистрировать вывод в случае паники ядра в Linux, kdump
это путь. Это то, чему Red Hat обучает людей, и то, что я считаю стандартным подходом.
Возможно, трассировка стека проходит через сетевую консоль (/usr/src/linux/Documentation/networking/netconsole.txt
). Стоит попробовать, так как это почти не требует усилий.