On Sun, Jul 04, 2004 at 08:56:52PM -0400, Ivan Adzhubey wrote: > On Sunday 04 July 2004 09:17 am, Sergey Vlasov wrote: > > On Sat, Jul 03, 2004 at 11:48:51PM -0400, Ivan Adzhubey wrote: > > > Добавил на кластере nmi_watchdog=2 к опциям загрузки ядра (=1 не > > > сработало), судя по /proc/interrupts NMI запустились, но вот только что > > > опять нода умерла и даже не думает перегружаться. Насколько вообще > > > эффективен этот kernel NMI handler? Или без аппаратного watchdog все > > > равно не обойтись? Если у кого-то есть опыт, поделитесь пожалуйста. > > > > nmi_watchdog отлавливает только ситуации зацикливания с запрещёнными > > прерываниями. Можно к нему добавить ещё softdog; впрочем, в случае > > действительно аппаратного зависания это всё равно не поможет. > > Это все так, в теории, но вот я неполенился сходить на работу посмотреть на > умершую ноду. На консоли написано: NMI Watchdog detected lockup on CPU0, > потом идет дамп регистров и в конце: Shutting up console... И все, висим. То > есть watchdog вроде бы сработал, но почему машину не перегрузил?? В > параметрах загрузки ядра стоит: panic=30, то есть должны через тридцать > секунд после oops'а перегрузиться автоматом. Фиг вам. И как это понимать? Там делается не panic, а do_exit(SIGSEGV) - т.е., если зависание произошло в контексте какого-либо процесса, убивается только этот процесс. Впрочем, убивается он достаточно грубо, так что система всё равно вряд ли продолжит работу после этого. nmi_watchdog - это в первую очередь отладочный инструмент; по выданному в результате его срабатывания backtrace нужно смотреть, на чём именно повисло (как правило, это какой-то spinlock), и по этим данным искать ошибку.