Re: [PATCH v14 clocksource 6/6] clocksource: Print deviation in nanoseconds for unstable case

From: Paul E. McKenney
Date: Tue May 11 2021 - 23:38:10 EST


On Wed, May 12, 2021 at 10:21:36AM +0800, Feng Tang wrote:
> On Tue, May 11, 2021 at 04:34:55PM -0700, Paul E. McKenney wrote:
> > From: Feng Tang <feng.tang@xxxxxxxxx>
> >
> > 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 existing delta in
> > nanoseconds to make it easier for humans to check the results.
> >
> > Signed-off-by: Feng Tang <feng.tang@xxxxxxxxx>
> > Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>
> > ---
> > kernel/time/clocksource.c | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
> > index bbe1bcf44ffa..9c45b98e60e2 100644
> > --- a/kernel/time/clocksource.c
> > +++ b/kernel/time/clocksource.c
> > @@ -406,10 +406,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_nesc: %lld wd_now: %llx wd_last: %llx mask: %llx\n",
>
> There is a typo in the message, 'wd_nesc' should be 'wd_nsec' ,
> sorry for that.

No problem! I already have you covered with bfa55d346b23 ("squash!
clocksource: Print deviation in nanoseconds for unstable case").

I will merge it on the next rebase.

Thanx, Paul

> Thanks,
> Feng
>
>
> > + 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)
> > --
> > 2.31.1.189.g2e36527f23