clocksource: Print deviation in nanoseconds when a clocksource becomes unstable
authorFeng Tang <feng.tang@intel.com>
Thu, 27 May 2021 19:01:24 +0000 (12:01 -0700)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 22 Jun 2021 14:53:17 +0000 (16:53 +0200)
Currently when an unstable clocksource is detected, the raw counters of
that clocksource and watchdog will be printed, which can only be understood
after some math calculation.

So print the delta in nanoseconds as well to make it easier for humans to
check the results.

[ paulmck: Fix typo. ]

Signed-off-by: Feng Tang <feng.tang@intel.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20210527190124.440372-6-paulmck@kernel.org
kernel/time/clocksource.c

index 74d6a234fd14ef9b166771fc94fc82ebca61448b..b89c76e1c02c4763453de19d2c5a3c8540bb01a6 100644 (file)
@@ -407,10 +407,10 @@ static void clocksource_watchdog(struct timer_list *unused)
                if (abs(cs_nsec - wd_nsec) > md) {
                        pr_warn("timekeeping watchdog on CPU%d: Marking clocksource '%s' as unstable because the skew is too large:\n",
                                smp_processor_id(), cs->name);
-                       pr_warn("                      '%s' wd_now: %llx wd_last: %llx mask: %llx\n",
-                               watchdog->name, wdnow, wdlast, watchdog->mask);
-                       pr_warn("                      '%s' cs_now: %llx cs_last: %llx mask: %llx\n",
-                               cs->name, csnow, cslast, cs->mask);
+                       pr_warn("                      '%s' wd_nsec: %lld wd_now: %llx wd_last: %llx mask: %llx\n",
+                               watchdog->name, wd_nsec, wdnow, wdlast, watchdog->mask);
+                       pr_warn("                      '%s' cs_nsec: %lld cs_now: %llx cs_last: %llx mask: %llx\n",
+                               cs->name, cs_nsec, csnow, cslast, cs->mask);
                        if (curr_clocksource == cs)
                                pr_warn("                      '%s' is current clocksource.\n", cs->name);
                        else if (curr_clocksource)