From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752498AbcAFNBe (ORCPT ); Wed, 6 Jan 2016 08:01:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:51330 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751930AbcAFNAu (ORCPT ); Wed, 6 Jan 2016 08:00:50 -0500 From: Prarit Bhargava To: linux-kernel@vger.kernel.org Cc: Prarit Bhargava , John Stultz , Xunlei Pang , Thomas Gleixner , Baolin Wang , Andrew Morton , Greg Kroah-Hartman , Petr Mladek , Tejun Heo , Peter Hurley , Vasily Averin , Joe Perches Subject: [PATCH 0/2] printk, Add a printk.clock kernel parameter Date: Wed, 6 Jan 2016 08:00:32 -0500 Message-Id: <1452085234-10667-1-git-send-email-prarit@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Over the past years I've seen many reports of bugs that include time-stamped kernel logs (enabled when CONFIG_PRINTK_TIME=y or print.time=1 is specified as a kernel parameter) that do not align with either external time stamped logs or /var/log/messages. For example, [root@intel-wildcatpass-06 ~]# date; echo "Hello!" > /dev/kmsg ; date Thu Dec 17 13:58:31 EST 2015 Thu Dec 17 13:58:31 EST 2015 which displays [83973.768912] Hello! on the serial console. Running a script to convert this to "boot time", [root@intel-wildcatpass-06 ~]# ./human.sh | tail -1 [Thu Dec 17 13:59:57 2015] Hello! which is already off by 1 minute and 26 seconds off after ~24 hours of uptime. This occurs because the time stamp is obtained from a call to local_clock() which (on x86) is a direct call to the hardware. These hardware clock reads are not modified by the standard ntp or ptp protocol, while the other timestamps are, and that results in situations where /var/log/messages timestamps are further and further offset from the hardware clock timestamps. This patch introduces printk.clock=[local|boot|real|tai] allowing a user to specify an adjusted clock to use with printk timestamps. The hardware clock, or the existing functionality, is preserved by default. Cc: John Stultz Cc: Xunlei Pang Cc: Thomas Gleixner Cc: Baolin Wang Cc: Andrew Morton Cc: Greg Kroah-Hartman Cc: Petr Mladek Cc: Tejun Heo Cc: Peter Hurley Cc: Vasily Averin Cc: Joe Perches Signed-off-by: Prarit Bhargava Prarit Bhargava (2): kernel, timekeeping, add trylock option to ktime_get_with_offset() printk, Add printk.clock kernel parameter include/linux/time64.h | 2 + include/linux/timekeeping.h | 50 +++++++++++++++++++-- kernel/printk/printk.c | 105 +++++++++++++++++++++++++++++++++++++++---- kernel/time/timekeeping.c | 15 ++++++- 4 files changed, 159 insertions(+), 13 deletions(-) -- 1.7.9.3