Re: [PATCH] printk/nmi: restore printk_func in nmi_panic
From: Sergey Senozhatsky
Date: Fri Feb 26 2016 - 22:36:04 EST
On (02/27/16 12:09), Sergey Senozhatsky wrote:
> On (02/27/16 11:19), Sergey Senozhatsky wrote:
> [..]
> > > I think about a compromise. We should try to get the messages
> > > out only when kdump is not enabled.
> >
> > can we zap_locks() if we are on nmi_panic()->panic()->console_flush_on_panic() path?
> > console_flush_on_panic() is happening after we send out smp_send_stop().
>
> can something like this do the trick?
hm, no. it can't.
I forgot to move printk_nmi_exit() from nmi_panic() to panic(). so
it should have been:
panic()
...
printk_nmi_exit()
console_flush_on_panic()
__zap_locks()
printk_nmi_flush()
console_unlock()
but this __zap_locks() can _in theory_ race with irq_work->printk_nmi_flush().
so we need something more than this...
-ss