Currently no trace clock can account for suspend time, using monotonic during tracing in the suspend path means the trace times wont be advaced. Using the boot clock with ktime_get_with_offset is not an option due to live locking concerns in NMI context as suggested by Thomas [1]. These patches add a fast boot clock based on fast monotonic clock and adds a trace clock based on it which solves both these issues.
Changes since v1: - Use TK_OFFS_MAX as offset. Changes since RFC: - Moved the ktime_t offsets to the end of tk_fast for cache line optimization - use unlikely to optimize for the monotonic case [1] https://lkml.org/lkml/2016/11/20/75 Joel Fernandes (2): timekeeping: Introduce a fast boot clock derived from fast monotonic clock trace: Add an option for boot clock as trace clock kernel/time/timekeeping.c | 36 ++++++++++++++++++++++++++++++------ kernel/trace/trace.c | 1 + 2 files changed, 31 insertions(+), 6 deletions(-) Cc: Steven Rostedt <rost...@goodmis.org> Cc: Thomas Gleixner <t...@linutronix.de> Cc: John Stultz <john.stu...@linaro.org> Cc: Ingo Molnar <mi...@redhat.com> -- 2.8.0.rc3.226.g39d4020