Messages in this thread | | | Subject | Re: [PATCH] printk: Add printk_flush() to force buffered text to console | From | Steven Rostedt <> | Date | Fri, 22 Jun 2012 19:41:04 -0400 |
| |
On Fri, 2012-06-22 at 14:54 -0700, Andrew Morton wrote: > On Thu, 21 Jun 2012 19:52:03 -0400 > Steven Rostedt <rostedt@goodmis.org> wrote: > > > But with the new printk() changes, text without a newline gets buffered > > and does not print out to the console at the location of the printk. > > uh, how about we fix that? The old behaviour was good, the new > behaviour is noxious. > > Please idenfity these "new printk() changes". Was the new noxiousness > an unavoidable effect of them?
See commit 7ff9554bb578 ("printk: convert byte-buffer to variable-length record buffer") and related commits.
But that said, there may be a way that I can make it still always flush and not add a new API. We can flush on partial writes, and keep track of the current task (as it already does). If a new task comes in, we can then force a newline before printing the content of the old task (if there wasn't a newline printed before).
This is basically what it does now, except that it buffers the data. If a new task were to do a print in between the two partial writes, it flushes what was buffered and adds a newline before printing the new text.
I think I may be able to implement the same behavior, except that it wont buffer. It would just keep track of the state of the last write.
-- Steve
| |