lkml.org 
[lkml]   [2012]   [Jun]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v2] printk: Have printk() never buffer its data
    From
    Date
    On Mon, 2012-06-25 at 09:21 -0400, Steven Rostedt wrote:

    > This brings back the old way of printk() that always prints to the console
    > and does not buffer the data. As printk_emit() is used by other 'facilities'
    > this only affects printk(), but keeps pretty much the new behavior.

    Note, this patch brings back the old printk() behavior of not buffering
    the output to the console, without the need of printk_flush() or any
    helper function, and it does so without a revert of the changes that Kay
    has made.

    Even with Kay's changes, if multiple partial lines are printed on SMP,
    those would be interleaved as well, as the new method can only save one
    partial line at a time. Only full lines will not flush out the buffer.

    At least with my patch, if two interleaving printks were coming out at
    the same time, they would each get their own line (better than the old
    way).

    We could probably even add a task id output if necessary, and an
    external tool could easily put them back together. Only print the task
    id if a partial line was preempted by another task. But that would come
    after a later debate.

    I'm thinking that this patch is the best of both worlds. Most of Kay's
    work is still intact, and printk() still behaves as we expect it to.

    -- Steve




    \
     
     \ /
      Last update: 2012-06-25 16:02    [W:0.023 / U:0.480 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site