lkml.org 
[lkml]   [2012]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: Regression due to 7ff9554 "printk: convert byte-buffer to variable-length record buffer"
    On Thu, May 10, 2012 at 10:20 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
    > On 05/10/2012 02:15 PM, Kay Sievers wrote:
    >> On Thu, May 10, 2012 at 10:13 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
    >>> On 05/10/2012 02:09 PM, Stephen Warren wrote:
    >>>> On 05/10/2012 02:06 PM, Kay Sievers wrote:
    >>>>> On Thu, May 10, 2012 at 9:54 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
    >>>>>> On 05/09/2012 12:31 PM, Stephen Warren wrote:
    >>>>>>> For me, next-20120508 prints nothing when booted, and I think also
    >>>>>>> hangs. To solve this, I reverted:
    >>>>>>>
    >>>>>>> 7ff9554 printk: convert byte-buffer to variable-length record buffer
    >>>>>>>
    >>>>>>> In order to build, I also had to revert:
    >>>>>>>
    >>>>>>> c4e00da driver-core: extend dev_printk() to pass structured data
    >>>>>>>
    >>>>>>> Note: I'm running on an ARM system using a serial console, with
    >>>>>>> earlyprintk enabled.
    >>>>>>
    >>>>>> This issue still occurs in next-20120510.
    >>>>>>
    >>>>>> I've tracked it down to the assignment of msg->ts_nsec near the end of
    >>>>>> log_store(). If I comment this out, everything works. The problem is the
    >>>>>> assignment, not the call to local_clock():
    >>>>>>
    >>>>>> fails:
    >>>>>>        msg->ts_nsec = local_clock();
    >>>>>> fails:
    >>>>>>        msg->ts_nsec = 0;//local_clock();
    >>>>>> works:
    >>>>>>        //msg->ts_nsec = local_clock();
    >>>>>
    >>>>> Weird.
    >>>>>
    >>>>> What happens if you change it to:
    >>>>>   cpu_clock(logbuf_cpu);
    >>>>> ?
    >>>>>
    >>>>> If it works, the timestamps look ok?
    >>>>
    >>>> I doubt that would work - after all, assigning 0 fails, but not
    >>>> performing the assignment at all works. But, I'll go try it...
    >>>
    >>> Calling cpu_clock() instead of local_clock() fails in the same way.
    >>
    >> Ok, didn't really see the assign to 0 you tried, sorry. :)
    >>
    >> And 'dmesg' works when you run the box with the line commented out?
    >>
    >> And 'cat /dev/kmsg'?
    >
    > Yes, both work and produce reasonable output.

    Really weird. I have zero ideas at what this could be. The messages in
    /dev/kmsg have seqnums, you see the 0 as the first?

    5,0,0;Linux version 3.4.0-rc6+ ...
    6,1,0;Command line: root=/dev/sda1 ...

    > "cat /dev/kmsg" does hang
    > at the end of the log until I CTRL-C it - is that expected?

    Yeah, 'cat' is a blocking read(), tools would use poll().

    Kay
    --
    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: 2012-05-10 23:01    [W:0.029 / U:30.188 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site