Re: [PATCH] kexec: fix hang on i386 when panic occurs whileconsole_sem is held

From: Neil Horman
Date: Mon Oct 20 2008 - 09:44:52 EST


On Mon, Oct 20, 2008 at 02:13:39PM +0200, Ingo Molnar wrote:
>
> * Neil Horman <nhorman@xxxxxxxxxxxxx> wrote:
>
> > Hey all-
> > Theres a corner case in 32 bit x86 kdump at the moment. When
> > the box panics via nmi, we call bust_spinlocks(1) to disable
> > sensitivity to the console_sem (allowing us to print to the console in
> > all cases), but we don't call crash_kexec, until after we call
> > bust_spinlocks(0), which re-enables console_sem sensitivity. The
> > result is that, if we get an nmi while the console_sem is held and
> > kdump is configured, and we try to print something to the console
> > during kdump shutdown (which we often do) we deadlock the box. The
> > fix is to simply do what 64 bit die_nmi does which is to not call
> > bust_spinlocks(0) until after we call crash_kexec. Patch below tested
> > successfully by me:
>
> applied to tip/x86/urgent, thanks Neil!
>
Thanks, Ingo!

> > dumpstack_32.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
>
> would be nice to unify this code some more - to create a new
> arch/x86/kernel/dumpstack.c and fill it in with die_nmi() as a
> beginning?
>
Agreed, I'll try look into that as soon as I have some free time.

Regards
Neil

> Ingo
>

--
/****************************************************
* Neil Horman <nhorman@xxxxxxxxxxxxx>
* Software Engineer, Red Hat
****************************************************/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/