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