All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC patch 0/7] printk: Switch to CLOCK_MONOTONIC and store extra time stamps
@ 2017-11-15 18:15 Thomas Gleixner
  2017-11-15 18:15 ` [RFC patch 1/7] timekeeping: Do not unconditionally suspend NMI safe timekeepers Thomas Gleixner
                   ` (6 more replies)
  0 siblings, 7 replies; 23+ messages in thread
From: Thomas Gleixner @ 2017-11-15 18:15 UTC (permalink / raw)
  To: LKML
  Cc: Linus Torvalds, Prarit Bhargava, Mark Salyzyn, Petr Mladek,
	Ingo Molnar, H. Peter Anvin, Peter Zijlstra, Andrew Morton,
	Sergey Senozhatsky, Steven Rostedt, Joe Perches

Following up on yesterdays discussion about adding support for reliably
correlatable time stamps to the printk ringbuffer entries, I split up that
draft patch from yesterday, addressed review feedback and actually tested
it.

There are a few things which are visible changes:

1) The fine grained time stamps start later in the boot process because
   local_clock() is initialized before a high resolution clocksource is
   installed.

2) During suspend/resume between timekeeping_suspend() and
   timekeeping_resume() the NMI safe accessors return a stale timestamp,
   i.e. the timestamp which was captured in timekeeping_suspend()

Mitigation:

 #1 Can be mitigated by a horrible hack, which I added as last patch in the
    series. It uses local_clock() in early boot up to the point where a
    proper clocksource providing fine grained CLOCK_MONOTONIC is
    available. That's actually not that bad, because time won't drift apart.

 #2 Can be mitigated at least for clocksources which are safe to access past
    timekeeping_suspend(). There are patches which enable that for TSC when
    the TSC_NONSTOP_SUSPEND cpu feature bit is enabled.

    For clocksources which cannot be accessed past timekeeping_suspend()
    the workaround #1 can be used (see last patch^Whack). Though this might
    cause time inconsistencies (non monotonic time stamps).

Not sure if any of this is a real problem, because not all
local/sched_clock() implementations are functional past
timekeeping_suspend(). 

I left all 3 time stamps in the patch for now so people can actually play
with that.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2017-12-08 19:51 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-15 18:15 [RFC patch 0/7] printk: Switch to CLOCK_MONOTONIC and store extra time stamps Thomas Gleixner
2017-11-15 18:15 ` [RFC patch 1/7] timekeeping: Do not unconditionally suspend NMI safe timekeepers Thomas Gleixner
2017-11-15 18:15 ` [RFC patch 2/7] x86/tsc: Set clocksource CLOCK_SOURCE_SUSPEND_ACCESS_OK Thomas Gleixner
2017-11-15 18:15 ` [RFC patch 3/7] printk: Use clock MONOTONIC for timestamps Thomas Gleixner
2017-11-16  7:58   ` Sergey Senozhatsky
2017-11-15 18:15 ` [RFC patch 4/7] timekeeping: Add NMI safe accessor to mono/boot/real clocks Thomas Gleixner
2017-11-17 23:00   ` Steven Rostedt
2017-11-17 23:12     ` Linus Torvalds
2017-11-17 23:43       ` Thomas Gleixner
2017-11-15 18:15 ` [RFC patch 5/7] crash: Add VMCOREINFO_FIELD_AND_OFFSET() Thomas Gleixner
2017-11-23 12:46   ` Petr Mladek
2017-11-15 18:15 ` [RFC patch 6/7] printk: Store mono/boot/real time timestamps Thomas Gleixner
2017-11-23 13:36   ` Petr Mladek
2017-11-15 18:15 ` [RFC patch 7/7] timekeeping: Hack to use fine grained timestamps during boot Thomas Gleixner
2017-11-23 12:58   ` Petr Mladek
2017-11-28 18:43     ` Prarit Bhargava
2017-11-28 18:47       ` Thomas Gleixner
2017-12-08 11:23         ` Petr Mladek
2017-12-08 19:51           ` Thomas Gleixner
2017-11-28 19:10       ` Mark Salyzyn
2017-11-28 19:45         ` Steven Rostedt
2017-11-28 20:29           ` Mark Salyzyn
2017-11-28 20:38             ` Peter Zijlstra

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.