Messages in this thread Patch in this message | | | Date | Tue, 9 Nov 2021 21:55:08 +0100 | From | Heiner Kallweit <> | Subject | [PATCH] clocksource: Improve cs_watchdog_read() |
| |
If max_cswd_read_retries is set to 0 or 1 then the current warning behavior doesn't seem to make too much sense to me. If set to 0, then we'd warn with each watchdog run. If set to 1, then we'd warn at the first retry, even though the commit description of db3a34e17433 states that one retry is expected behavior. If printing a message at all in this case, then it should be debug level.
Whilst being at it, move declaration of wd_end and wd_delta into the loop and remove not needed braces.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> --- kernel/time/clocksource.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c index f29d1a524..8c0be9c02 100644 --- a/kernel/time/clocksource.c +++ b/kernel/time/clocksource.c @@ -208,10 +208,11 @@ module_param(verify_n_cpus, int, 0644); static bool cs_watchdog_read(struct clocksource *cs, u64 *csnow, u64 *wdnow) { unsigned int nretries; - u64 wd_end, wd_delta; int64_t wd_delay; for (nretries = 0; nretries <= max_cswd_read_retries; nretries++) { + u64 wd_end, wd_delta; + local_irq_disable(); *wdnow = watchdog->read(watchdog); *csnow = cs->read(cs); @@ -222,10 +223,9 @@ static bool cs_watchdog_read(struct clocksource *cs, u64 *csnow, u64 *wdnow) wd_delay = clocksource_cyc2ns(wd_delta, watchdog->mult, watchdog->shift); if (wd_delay <= WATCHDOG_MAX_SKEW) { - if (nretries > 1 || nretries >= max_cswd_read_retries) { + if (nretries > 1) pr_warn("timekeeping watchdog on CPU%d: %s retried %d times before success\n", smp_processor_id(), watchdog->name, nretries); - } return true; } } -- 2.33.1
| |