lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Thu,  2 Nov 2017 13:26:38 -0400
From:   Pavel Tatashin <>
Subject: [PATCH v7 0/6] Early boot time stamps for x86

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/include/asm/tsc.h            |  4 ++
 arch/x86/kernel/paravirt.c            |  1 +
 arch/x86/kernel/setup.c               | 10 +++-
 arch/x86/kernel/time.c                | 31 +++++++++++
 arch/x86/kernel/tsc.c                 | 98 ++++++++++++++++++++++++++++++-----
 arch/x86/xen/time.c                   |  7 +--
 include/linux/timekeeping.h           | 10 ++--
 kernel/sched/clock.c                  | 10 +++-
 kernel/time/timekeeping.c             |  8 ++-
 13 files changed, 155 insertions(+), 31 deletions(-)


Powered by blists - more mailing lists