Re: 4.14 backport request for dbdda842fe96f: "printk: Add console owner and waiter logic to load balance console writes"

From: Daniel Wang
Date: Thu Nov 01 2018 - 12:05:44 EST


On Mon, Oct 22, 2018 at 3:10 AM Sergey Senozhatsky
<sergey.senozhatsky.work@xxxxxxxxx> 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...

>
>
> > I see that Sergey had sent an RFC series for similar things. Are those
> > trying to solve the deadlock problem in a different way?
>
> Umm, I wouldn't call it "another way". It turns non-reentrant serial
> consoles to re-entrable ones. Did you test patch [1] from that series
> on you environment, by the way?

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 and not
bother taking Steven's (since as you mentioned above even with his
patches there's still possibility for other deadlocks) ?

>
> [1] lkml.kernel.org/r/20181016050428.17966-2-sergey.senozhatsky@xxxxxxxxx
>
> -ss



--
Best,
Daniel

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature