Re: [PATCH RFC clocksource 2/5] clocksource: Retry clock read if long delays detected

From: Rik van Riel
Date: Wed Jan 06 2021 - 16:01:07 EST


On Wed, 2021-01-06 at 11:53 -0800, Paul E. McKenney wrote:
> On Wed, Jan 06, 2021 at 11:28:00AM -0500, Rik van Riel wrote:
>
> > + wdagain_nsec = clocksource_cyc2ns(delta, watchdog-
> > > mult, watchdog->shift);
> > + if (wdagain_nsec < 0 || wdagain_nsec >
> > WATCHDOG_MAX_SKEW) {
> > + wderr_nsec = wdagain_nsec;
> > + if (nretries++ < max_read_retries)
> > + goto retry;
> > + }
> >
> > Given that clocksource_cyc2ns uses unsigned multiplication
> > followed by a right shift, do we need to test for <0?
>
> I am worried about the possibility of the "shift" argument to
> clocksource_cyc2ns() being zero. For example, unless I am missing
> something, clocksource_tsc has a zero .shift field.

Oh, good point!