lkml.org 
[lkml]   [2002]   [Apr]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Event logging vs enhancing printk
    > I'm not aware of that being the case.  The output string
    > is formed into a static buffer and then copied into the
    > printk ring buffer all under spinlock_irqsave(logbuf_lock).
    >
    > If there is something wrong then it would be occurring
    > at the other end - where data is taken out of the ring
    > and is sent to the console device(s). The locking there
    > is OK, I think?

    I think we're talking about slightly different things. I'd agree that
    one call to printk is atomic, and won't get interspersed with other
    things, but if we output a line via multiple calls to printk, then I
    think we have a problem. Say CPU 0 executes this bit of code:

    for (i=0; i<10; i++) { printk ("%d ", i); } printk("\n");

    and CPU 1 does "printk("hello\n");" then instead of getting either

    0 1 2 3 4 5 6 7 8 9
    hello

    or

    hello
    0 1 2 3 4 5 6 7 8 9

    either of which would be fine, we may get

    0 1 2 3 hello
    4 5 6 7 8 9

    which I don't think is fine - obviously the example is somewhat
    trite, but with the real instances of things that build output for one
    line through multiple calls to printk, you can get unreadable garbage,
    if I read the code correctly ?

    M.

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:25    [W:0.023 / U:0.028 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site