Re: [PATCH v5] lib/spinlock_debug.c: prevent a recursive cycle in the debug code

From: Sergey Senozhatsky
Date: Sun Jan 31 2016 - 07:38:57 EST


On (01/29/16 21:54), Byungchul Park wrote:
> Hello, Andrew
>
> Please take this v5 patch instead of v2 patch, which you took. Or give your
> opinion.
>
> > It causes an infinite recursive cycle when using CONFIG_DEBUG_SPINLOCK,
> > in the spin_dump(). Backtrace prints printk() -> console_trylock() ->
> > do_raw_spin_lock() -> spin_dump() -> printk()... infinitely.
> >
> > When the spin_dump() is called from printk(), we should prevent the
> > debug spinlock code from calling printk() again in that context. It's
> > reasonable to avoid printing "lockup suspected" which is just a warning
> > message but it would cause a real lockup definitely.


Hello Byungchul,

thanks for the patch and thanks for bringing this topic to discussion.
let's not rush, if you don't mind, and return back for a bit. there are
some serious cases (when we really would want to see a spin_dump output)
that are broken.

-ss