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

Reply via email to