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

From: Pavel Tatashin
Date: Wed Dec 26 2018 - 11:45:31 EST


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@xxxxxxxxxx

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(-)

--
2.20.1