mbox series

[v3,0/3] Early boot time stamps for arm64

Message ID 20181226164509.22916-1-pasha.tatashin@soleen.com (mailing list archive)
Headers show
Series Early boot time stamps for arm64 | expand

Message

Pasha Tatashin Dec. 26, 2018, 4:45 p.m. UTC
Changelog:
v2 - v3
	Addressed comments from Will Deacon: split into three
	patches, removed hardcoded assumption from vdso, don't
	assign arch_timer_read_counter during early boot.
v1 - v2
	Addressed comments from Marc Zyngier

I made early boot time stamps available for SPARC and X86.

x86:
https://lore.kernel.org/lkml/20180719205545.16512-1-pasha.tatashin@oracle.com

sparc:
https://www.spinics.net/lists/sparclinux/msg18063.html

As discussed at plumbers, I would like to add the same for arm64. The
implementation does not have to be perfect, and should work only when early
clock is easy to determine. arm64 defines a clock register, and thus makes
it easy, but on some platforms frequency register is broken, so if it is
not known, simply don't initialize clock early.

dmesg before:
https://paste.ubuntu.com/p/3pJ5kgJHyN

dmesg after:
https://paste.ubuntu.com/p/RHKGVd9nSM

As seen from the above with base smp_init is finished after 0.47s:
[    0.464585] SMP: Total of 8 processors activated.

But, in reality, 3.2s is missing which is a quiet long considering this is
only 60G domain.


Pavel Tatashin (3):
  arm_arch_timer: add macro for timer nbits
  arm64: vdso: Use ARCH_TIMER_NBITS to calculate mask
  arm64: Early boot time stamps

 arch/arm64/kernel/asm-offsets.c       |  1 +
 arch/arm64/kernel/setup.c             | 25 +++++++++++++++++++++++++
 arch/arm64/kernel/vdso/gettimeofday.S |  3 +--
 drivers/clocksource/arm_arch_timer.c  |  8 ++++----
 include/clocksource/arm_arch_timer.h  |  3 +++
 5 files changed, 34 insertions(+), 6 deletions(-)