Re: [PATCH 3/3 v11] printk: Add monotonic, boottime, and realtime timestamps

From: Mark Salyzyn
Date: Fri Sep 15 2017 - 10:29:52 EST


On 09/15/2017 06:28 AM, Petr Mladek wrote:
I am still slightly nervous that external tools would need updating.
Also they might have troubles to interpret the time stamps especially
when the source is changed at runtime via
/sys/module/printk/parameters/time.
My comment below is a rehash/summary:

In the discussion, it appears that DAC protection is enough to prevent flippant changes. The use cases I can imagine for runtime alteration fall in two groups, late boot changes after all disks are mounted and the application layers have started; or as an aid to debugging where the deliberate nature can be accounted for. Change it, erase the logs is the KISS solution, so the tools do not have to 'sniff' the stream for dynamic changes, likely getting the 'leader' wrong, checking /sys/module/printk/parameters/time for the current/last timebase.

To mitigate the 'leader' issue, or post-mortem/off-machine interpretation, really for the debugging corner case IMHO, I had proposed that local, and perhaps monotonic, time print as-is as they are almost(?) imperceptibly different, but that realtime add a U suffix (to denote time is UTC), and that boottime add a B suffix (well, because) so that tools can discern. Monotonic could have a M suffix if it is really a stickler. This proposal would require more disruptive tool modifications and should be scoped as a separate effort. I do expect a debate regarding upper and lower case ...

I have a patch waiting in the wings here where disruptive time changes (suspend/resume/hibernate/restore; maybe date(1), ntpd(8) or embedded systems LTE hardware time updates) will report dual timestamps so that resynchronization and tracking can happen in post-mortem on the stream, I expect to use the above proposal for the 'second' occasional timestamp.

-- Mark