On (11/01/18 09:05), Daniel Wang wrote:
> > Another deadlock scenario could be the following one:
> >
> > printk()
> > console_trylock()
> > down_trylock()
> > raw_spin_lock_irqsave(&sem->lock, flags)
> > <NMI>
> > panic()
> > console_flush_on_panic()
> > console_trylock()
> > raw_spin_lock_irqsave(&sem->lock, flags) // deadlock
> >
> > There are no patches addressing this one at the moment. And it's
> > unclear if you are hitting this scenario.
>
> I am not sure, but Steven's patches did make the deadlock I saw go away...
You certainly can find cases when "busy spin on console_sem owner" logic
can reduce some possibilities.
But spin_lock(&lock); NMI; spin_lock(&lock); code is still in the kernel.
> A little swamped by other things lately but I'll run a test with it.
> If it works, would you recommend taking your patch alone
Let's first figure out if it works.
-ss