Re: [RFC][PATCH v4 1/2] printk: Make printk() completely async

From: Byungchul Park
Date: Wed Mar 16 2016 - 03:30:27 EST


On Wed, Mar 16, 2016 at 03:58:51PM +0900, Sergey Senozhatsky wrote:
> I don't have a very clear vision (at the moment) of how to fix printk recursion
> caused by logbuf lock of console_sem corruptions, etc. Should spin_dump
> be aware of the locks that can be taken by printk()? Hm, I can't even count all
> the locks that possibly can be taken by printk->console_drivers and most likely
> don't even see all of the cases where printk can recurse. Disable lock debug
> in vprintk_emit() the same way lockdep is desabled? Hm...
>
> Ingo's POV is that printk must be reworked and become smarter in this aspect.

Yeah, it must be smarter... :-(

>
> > I mean that it would be better to keep the wake_up and friend out of the
> > critical section by logbuf_lock.
>
> in this case wake_up_process() can recurse us forever.

I said they should be kept *out of* the critical section. :-) Otherwise, it
can recurse us forever.

Do you mean the wake_up_process() in console_unlock? If so, it must be
handled by some ways, e.g. my patch you know.

Thanks,
Byungchul

>
> -ss