Re: [debug patch] printk: Add a printk killswitch to robustify NMI watchdog messages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> On Mon, 2011-06-06 at 17:52 +0200, Ingo Molnar wrote:
> > * Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> > 
> > > Needs more staring at, preferably by someone who actually 
> > > understands that horrid mess :/ Also, this all still doesn't make 
> > > printk() work reliably while holding rq->lock.
> > 
> > So, what about my suggestion to just *remove* the wakeup from there 
> > and use the deferred wakeup mechanism that klogd uses.
> > 
> > That would make printk() *visibly* more robust in practice.
> 
> That's currently done from the jiffy tick, do you want to effectively
> delay releasing the console_sem for the better part of a jiffy?

Yes, and we already do it in some other circumstances. Can you see 
any problem with that? klogd is an utter slowpath anyway.

> > [ It would also open up the way to possibly make printk() NMI entry 
> >   safe - currently we lock up if we printk in an NMI or #MC context 
> >   that happens to nest inside a printk(). ]
> 
> Well, for that to happen you also need to deal with logbuf_lock 
> nesting. [...]

That we could do as a robustness patch: detect when the current CPU 
already holds it and do not lock up on that. This would also allow 
printk() to work within a crashing printk(). (assuming the second 
printk() does not crash - in which case it's game over anyway)

> Personally I think using printk() from NMI context is quite beyond 
> sane.

Yeah, quite so, but it *can* happen so if we can make it work as a 
free side-effect of a printk()-robustness increasing patch, why not?

Thanks,

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Stable Commits]     [Linux Stable Kernel]     [Linux Kernel]     [Linux USB Devel]     [Linux Video &Media]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux