Пытаюсь разобраться с багом в ядре (где куча разных самописных модулей). Сначала попробовал прописать «console=ttyS0,115200 console=tty0» в grub, но желаемого не получил - на другом конце при чтении из сериал консоли просто увидел:
[ 131.745495] #:K:( 0:1):00000000000007be:00000:0000000131-743:Unspec :: Registering setup function 0xffffffffa0787890 for test 'device_unnamed'.
[ 131.745515] #:K:( 0:1):00000000000007be:00000:0000000131-743:Unspec :: Registering teardown function 0xffffffffa0787962 for test 'device_unnamed'.
[ 131.745540] #:K:( 0:1):00000000000007be:00000:0000000131-743:Unspec :: Registering setup function 0xffffffffa0787890 for test 'device_by_id'.
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
То есть после вывода в лог сразу случился reboot, но по какой причине не ясно, нет ни сообщения ни бэктрейса.
Следующая идея была попробовать kexec/kdump. Пересобрал ядро, которое сразу выполняет роль и system kernel и dump-capture kernel. Для начала проверил так:
# kexec -l /boot/linux-3.0.0 --initrd=/boot/initrd-3.0.0 --append="root=/dev/mapper/myvg-root 1 irqpoll maxcpus=1 reset_devices"
# kexec -e
и успешно загрузился в single-user mode.
Потом попробовал поставить panic-hook и симулировать panic:
# kexec -p /boot/linux-3.0.0 --initrd=/boot/initrd-3.0.0 --append="root=/dev/mapper/myvg-root 1 irqpoll maxcpus=1 reset_devices"
# echo c > /proc/sysrq-trigger
Вот тут-то и началить не совсем понятные для меня чудеса. Dump-capture ядро грузится очень медленно, на консоль выдает много сообщений типа «ata2: lost interrupt» и не работает клавиатура. То есть если грузиться в ядро через «kexec -e», то оно работает, а при kernel panic нет.
Собственно вопроса два
- При каких ошибках ядро просто ребутится без вывода на консоль сообщения о критической ошибке (см. вывод в начале сообщения)?
- Что я делаю не так с kexec/kdump?
Спасибо!
P.S. Использую Arch Linux с ванильными ядрами 2.6.39.3 и 3.0.0. Оба линукса - виртуальные машины на VmWare ESX сервере, а serial порты естественно тоже виртуальные (через pipe).