Re: [PATCH 0/2] printk, Add printk.clock kernel parameter [v2]

From: Prarit Bhargava
Date: Thu Jan 21 2016 - 11:10:01 EST




On 01/14/2016 09:44 AM, Thomas Gleixner wrote:
> On Thu, 14 Jan 2016, Petr Mladek wrote:
>> On Wed 2016-01-13 18:28:50, Thomas Gleixner wrote:
>>> You can solve the whole business by changing the timestamp in printk_log to
>>>
>>> u64 mono;
>>> u64 offset_real;
>>
>> This is not so easy because the structure is proceed by userspace tool,
>> e.g. crash, see log_buf_kexec_setup(). We would need to update all
>> the tools as well.
>
> Fair enough.
>
>>> and have a function which does:
>>>
>>> u64 ktime_get_log_ts(u64 *offset_real)
>>> {
>>> *offset_real = tk_core.timekeeper.offs_real;
>>>
>>> if (timekeeping_active)
>>> return ktime_get_mono_fast_ns();
>>> else
>>> return local_clock();
>>> }
>>
>> A solution would be to apply the offset_real immediately. I wonder if
>> any tool expects the messages to be sorted by a monotonic clock. In
>> fact, it might be useful to see that some messages are disordered
>> against the real time, e.g. because of the leaf second.

I've tested v2 with the leap second and haven't seen anything unusual on Fedora23.

>
> Not only leap seconds, it's also settimeofday and NTP might make the wall time
> jump under certain conditions.

Also tried this as well to set the time to different timezones as well as
setting the RTC in BIOS to the wrong time to see if there were any issues.
Again, nothing seemed to happen.

... noting of course the previously mentioned issue with /var/log/messages &
systemd that Petr found.

So IIUC ... I want real time to be reported (not boot or TAI), use tglx's
suggestion of ktime_get_log_ts(), and implement printk.time=1 (local_clock())
and printk.time=2 (real clock).

Is that correct?

P.

>
> Thanks,
>
> tglx
>