changelog --------- v5 - v6 - Added a new patch: time: sync read_boot_clock64() with persistent clock Which fixes missing __init macro, and enabled time discrepancy fix that was noted by Thomas Gleixner - Split "x86/time: read_boot_clock64() implementation" into a separate patch v4 - v5 - Fix compiler warnings on systems with stable clocks. v3 - v4 - Fixed tsc_early_fini() call to be in the 2nd patch as reported by Dou Liyang - Improved comment before __use_sched_clock_early to explain why we need both booleans. - Simplified valid_clock logic in read_boot_clock64().
v2 - v3 - Addressed comment from Thomas Gleixner - Timestamps are available a little later in boot but still much earlier than in mainline. This significantly simplified this work. v1 - v2 In patch "x86/tsc: tsc early": - added tsc_adjusted_early() - fixed 32-bit compile error use do_div() Adding early boot time stamps support for x86 machines. SPARC patches for early boot time stamps are already integrated into mainline linux. Sample output ------------- Before: https://hastebin.com/jadaqukubu.scala After: https://hastebin.com/nubipozacu.scala For more exaples how early time stamps are used, see this work: https://lwn.net/Articles/732233/ As seen above, currently timestamps are available from around the time when "Security Framework" is initialized. But, 26s already passed until we reached to this point. Pavel Tatashin (2): sched/clock: interface to allow timestamps early in boot x86/tsc: use tsc early Pavel Tatashin (4): sched/clock: interface to allow timestamps early in boot time: sync read_boot_clock64() with persistent clock x86/time: read_boot_clock64() implementation x86/tsc: use tsc early arch/arm/kernel/time.c | 2 +- arch/s390/kernel/time.c | 2 +- arch/x86/include/asm/tsc.h | 4 +++ arch/x86/kernel/setup.c | 10 +++++-- arch/x86/kernel/time.c | 31 ++++++++++++++++++++++ arch/x86/kernel/tsc.c | 47 +++++++++++++++++++++++++++++++++ include/linux/sched/clock.h | 4 +++ include/linux/timekeeping.h | 10 +++---- kernel/sched/clock.c | 63 ++++++++++++++++++++++++++++++++++++++++++++- kernel/time/timekeeping.c | 8 ++++-- 10 files changed, 169 insertions(+), 12 deletions(-) -- 2.14.1