Messages in this thread | | | Date | Fri, 7 Apr 2017 14:06:42 +0200 | From | Pavel Machek <> | Subject | Re: [RFC][PATCHv2 2/8] printk: introduce printing kernel thread |
| |
Hi!
> On (04/07/17 09:21), Pavel Machek wrote: > > > spin_dump() and trigger_all_cpu_backtrace() result in a bunch of > > > additional printk()-s so CPU0 has even more job to do in console_unlock(), > > > while it still holds the contended spin_lock. and so on; there are > > > many other examples. > > > > > > so should we declare a "we can spend only 2 seconds in direct printk() > > > and then must offload printing" rule? I don't think it's much better > > > than a simpler "we always offload, as long as we think it's safe". > > > > I believe we should do the 2 seconds rule. It allows us to print "some > > messages delayed" message, so at least whoever is trying to debug the > > crash will have the hints that he needs to look at the printk system. > > do you mean panic()? in panic() we call console_flush_on_panic(), > which immediately outputs all pending logbuf messages. printk() > offloading does not happen there.
Not panic(). I have seen many crashes where we had printk(KERN_ERR) and then hard hang. And the printk() was really important for debugging.
> > "we always offload, as long as we think it's safe" rule does not > > really work, as printk() can not detect if it is safe or not. > > but "2 seconds" rule has that "as long as we think it's safe" string > attached as well. just because we do offloading. which is sometimes > un-safe. so regardless the timeout value (0 seconds or 2 seconds) we > still need some sort of a hint from the path that issues printk() > because that path (panic, kexec, sysrq, etc.) knows for sure when > things are abnormal. printk() is pretty clueless in this regard. > /* well, I still think that EMERG loglevel thing is not completely > broken. */
Well, at least with my solution you know there are messages that were not printed.
Yes, you'd still want to switch printk_now() for stuff like panic(). But if you get it wrong (and you will), at least you will see the "something is missing here" message in the log.
Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html [unhandled content-type:application/pgp-signature] | |