Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752556AbdH3SEg (ORCPT ); Wed, 30 Aug 2017 14:04:36 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:27929 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751435AbdH3SEe (ORCPT ); Wed, 30 Aug 2017 14:04:34 -0400 From: Pavel Tatashin To: linux@armlinux.org.uk, schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com, john.stultz@linaro.org, sboyd@codeaurora.org, pasha.tatashin@oracle.com, x86@kernel.org, linux-kernel@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, tglx@linutronix.de, hpa@zytor.com, douly.fnst@cn.fujitsu.com Subject: [PATCH v6 0/4] Early boot time stamps for x86 Date: Wed, 30 Aug 2017 14:03:21 -0400 Message-Id: <1504116205-355281-1-git-send-email-pasha.tatashin@oracle.com> X-Mailer: git-send-email 1.7.1 X-Source-IP: aserv0022.oracle.com [141.146.126.234] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2287 Lines: 69 changelog --------- 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 work. 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 ------------- Before: https://hastebin.com/jadaqukubu.scala After: https://hastebin.com/nubipozacu.scala For more exaples how early time stamps are used, see this work: https://lwn.net/Articles/732233/ As seen above, currently timestamps are available from around the time when "Security Framework" is initialized. But, 26s already passed until we reached to this point. Pavel Tatashin (2): sched/clock: interface to allow timestamps early in boot x86/tsc: use tsc early Pavel Tatashin (4): sched/clock: interface to allow timestamps early in boot time: sync read_boot_clock64() with persistent clock x86/time: read_boot_clock64() implementation x86/tsc: use tsc early arch/arm/kernel/time.c | 2 +- arch/s390/kernel/time.c | 2 +- arch/x86/include/asm/tsc.h | 4 +++ arch/x86/kernel/setup.c | 10 +++++-- arch/x86/kernel/time.c | 31 ++++++++++++++++++++++ arch/x86/kernel/tsc.c | 47 +++++++++++++++++++++++++++++++++ include/linux/sched/clock.h | 4 +++ include/linux/timekeeping.h | 10 +++---- kernel/sched/clock.c | 63 ++++++++++++++++++++++++++++++++++++++++++++- kernel/time/timekeeping.c | 8 ++++-- 10 files changed, 169 insertions(+), 12 deletions(-) -- 2.14.1