Sergey Senozhatsky wrote: > On (06/28/17 14:19), Petr Mladek wrote: > > Our two proposals are very close after all. I suggest to make > > the following changes in your patch: > > > > + Remove the waiting for another console_lock owner. It is > > too tricky. > > we lose the printing guarantees this way. what if printk_kthread > doesn't wake up after all? the whole point of this design twist > (and previous discussions) was that people spoke up and said that > they want printk to do the thing it was doing for decades. even if > it would cause lockup reports sometimes (but it doesn't seem to be > such a common problem after all. how many people see printk lockup > reports more or less regularly?).
I do see printk lockup regularly because warn_alloc() from __alloc_pages_may_oom() is basically doing while (1) { dump_stack(); cond_resched(); } as long as somebody is looping inside console_unlock() with oom_lock mutex held. Since warn_alloc() is currently a local DoS attack vector, I'm waiting for this printk offloading patch to be merged into mainline, but it seems that this offloading might not be able to become a solution to warn_alloc() lockup problem.