Subject: Re: Regression due to 7ff9554 "printk: convert byte-buffer to variable-length record buffer"

From: Stephen Warren <[email-masked]>
Date: Thu, 10 May 2012 14:09:41 -0600

On 05/10/2012 02:06 PM, Kay Sievers wrote:
> On Thu, May 10, 2012 at 9:54 PM, Stephen Warren <[email-masked]> 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...