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 <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: John Stultz <[email protected]>
Cc: Ingo Molnar <[email protected]>
--
2.8.0.rc3.226.g39d4020