[lkml]   [2017]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH v8 0/6] Early boot time stamps for x86
v8 - v7
- Addressed comments from Dou Liyang:
- Moved tsc_early_init() and tsc_early_fini() to be all inside
tsc.c, and changed them to be static.
- Removed warning when notsc parameter is used.
- Merged with:

v7 - v6
- Removed tsc_disabled flag, now notsc is equivalent of
- Simplified changes to sched/clock.c, by removing the
sched_clock_early() and friends as requested by Peter Zijlstra.
We know always use sched_clock()
- Modified x86 sched_clock() to return either early boot time or
- Added another example why ealry boot time is important

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

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


For more exaples how early time stamps are used, see this work:

Example 1:
- Without early boot time stamps we would not know about the extra time
that is spent zeroing struct pages early in boot even when deferred
page initialization.

Example 2:
- If early boot timestamps were available, the engineer who introduced
this bug would have noticed the extra time that is spent early in boot.

Pavel Tatashin (6):
x86/tsc: remove tsc_disabled flag
time: sync read_boot_clock64() with persistent clock
x86/time: read_boot_clock64() implementation
sched: early boot clock
x86/paravirt: add active_sched_clock to pv_time_ops
x86/tsc: use tsc early

arch/arm/kernel/time.c | 2 +-
arch/s390/kernel/time.c | 2 +-
arch/x86/include/asm/paravirt.h | 2 +-
arch/x86/include/asm/paravirt_types.h | 1 +
arch/x86/kernel/paravirt.c | 1 +
arch/x86/kernel/time.c | 30 ++++++++++
arch/x86/kernel/tsc.c | 104 ++++++++++++++++++++++++++++------
arch/x86/xen/time.c | 7 ++-
include/linux/timekeeping.h | 7 +--
kernel/sched/clock.c | 10 +++-
kernel/time/timekeeping.c | 8 ++-
11 files changed, 144 insertions(+), 30 deletions(-)


 \ /
  Last update: 2017-11-09 04:04    [W:0.113 / U:1.056 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site