linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [v1 0/9] Early boot time stamps for x86
@ 2017-03-22 20:24 Pavel Tatashin
  2017-03-22 20:24 ` [v1 1/9] sched/clock: broken stable to unstable transfer Pavel Tatashin
                   ` (10 more replies)
  0 siblings, 11 replies; 19+ messages in thread
From: Pavel Tatashin @ 2017-03-22 20:24 UTC (permalink / raw)
  To: x86, linux-kernel, mingo, peterz, tglx, hpa

Last week I sent out patches to enable early boot time stamp on SPARC, that
work is now under review:
http://www.spinics.net/lists/sparclinux/msg17372.html

This is continuation for that work, but adding early boot time stamps
support for x86 machines.

Here is example how this information is useful:

Before:
https://hastebin.com/zofiqazuze.scala

After:
https://hastebin.com/otayoliruc.scala

If you take a look at the before case, it seems that this particular x86
machine took only 2 minutes to boot. Which, while can be improved, is not
too bad considering that this machine has 192CPUs and 2.2T of memory.

But, as it can be seen in the fix case,
the time is much longer:
- early boot time stamps account for another 80s!
- early tsc offset is 549s, so it took over 9 minutes to get through POST,
  and GRUB before starting linux

Now, the total boot time is 12m52s, which is really slow.

Pavel Tatashin (9):
  sched/clock: broken stable to unstable transfer
  sched/clock: interface to allow timestamps early in boot
  x86/cpu: determining x86 vendor early
  x86/tsc: early MSR-based CPU/TSC frequency discovery
  x86/tsc: disable early messages from quick_pit_calibrate
  x86/tsc: use cpuid to determine TSC frequency
  x86/tsc: use cpuid to determine CPU frequency
  x86/tsc: tsc early
  x86/tsc: use tsc early

 arch/x86/include/asm/processor.h |    1 +
 arch/x86/include/asm/tsc.h       |    5 +
 arch/x86/kernel/cpu/common.c     |   36 ++++++++
 arch/x86/kernel/head64.c         |    1 +
 arch/x86/kernel/time.c           |    1 +
 arch/x86/kernel/tsc.c            |  166 +++++++++++++++++++++++++++++++++-----
 arch/x86/kernel/tsc_msr.c        |   38 ++++++---
 include/linux/sched/clock.h      |    4 +
 kernel/sched/clock.c             |   70 +++++++++++++++-
 9 files changed, 284 insertions(+), 38 deletions(-)

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2017-03-27 10:31 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-22 20:24 [v1 0/9] Early boot time stamps for x86 Pavel Tatashin
2017-03-22 20:24 ` [v1 1/9] sched/clock: broken stable to unstable transfer Pavel Tatashin
2017-03-27 10:27   ` [tip:sched/urgent] sched/clock: Fix " tip-bot for Pavel Tatashin
2017-03-22 20:24 ` [v1 2/9] sched/clock: interface to allow timestamps early in boot Pavel Tatashin
2017-03-22 20:24 ` [v1 3/9] x86/cpu: determining x86 vendor early Pavel Tatashin
2017-03-22 20:24 ` [v1 4/9] x86/tsc: early MSR-based CPU/TSC frequency discovery Pavel Tatashin
2017-03-22 20:24 ` [v1 5/9] x86/tsc: disable early messages from quick_pit_calibrate Pavel Tatashin
2017-03-22 20:24 ` [v1 6/9] x86/tsc: use cpuid to determine TSC frequency Pavel Tatashin
2017-03-22 20:24 ` [v1 7/9] x86/tsc: use cpuid to determine CPU frequency Pavel Tatashin
2017-03-22 20:24 ` [v1 8/9] x86/tsc: tsc early Pavel Tatashin
2017-03-24  5:38   ` kbuild test robot
2017-03-22 20:24 ` [v1 9/9] x86/tsc: use " Pavel Tatashin
2017-03-22 20:27 ` [v1 0/9] Early boot time stamps for x86 Peter Zijlstra
2017-03-23  0:02   ` Pasha Tatashin
2017-03-22 20:28 ` Peter Zijlstra
2017-03-22 23:59   ` Pasha Tatashin
2017-03-23 10:56     ` Thomas Gleixner
2017-03-23 14:39       ` Pasha Tatashin
2017-03-23 18:40         ` Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).