|From:||Linus Torvalds <torvalds-AT-linux-foundation.org>|
|To:||Greg Kroah-Hartman <gregkh-AT-linuxfoundation.org>|
|Subject:||Re: [PATCH v3] printk: Have printk() never buffer its data|
|Date:||Mon, 25 Jun 2012 17:01:11 -0700|
|Cc:||Andrew Morton <akpm-AT-linux-foundation.org>, Steven Rostedt <rostedt-AT-goodmis.org>, LKML <linux-kernel-AT-vger.kernel.org>, Ingo Molnar <mingo-AT-elte.hu>, "kay.sievers" <kay.sievers-AT-vrfy.org>, Wu Fengguang <fengguang.wu-AT-intel.com>, Joe Perches <joe-AT-perches.com>, "Paul E. McKenney" <paulmck-AT-us.ibm.com>|
On Mon, Jun 25, 2012 at 4:55 PM, Greg Kroah-Hartman <firstname.lastname@example.org> wrote: > > Stephen and Ingo, I understand that your tests now would require > multiple printk() lines, but this affects what, 10 boxes in the world > that run these tests (I'm not trying to be mean, just understand the > issues). The fixes that now are in place fix problems for many more > systems, and provide the infrastructure for proper logging that people > have been screaming at us for over 10 years to accomplish. I disagree violently. I think we absolutely should apply Steven's patch. Why? Because the buffering does not help *anything*, and it's surprising, and it breaks one of our main debugging tools. There's no upside to it. The fact that we found *one* case where it broke within days of it being introduced is not the issue. Fixing that one case is irrelevant. It's the unknown number of other cases that did similar thngs that matter. If there are other places that print out partial lines, they may have this problem too. Don't buffer. And if there are *not* other places that print out partial lines, then buffering doesn't help. Don't buffer. Notice? Buffering partial lines is never *ever* the right thing to do for something like printk. If you want to merge the partial lines, do it at the *logging* stage, not at the printout stage. Nobody cares if you buffer the stuff that actually makes it to "dmesg". But buffering the stuff before it makes it to the screen is just wrong. Linus
Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds