Lines Matching refs:watchdog

111  * Maximum permissible delay between two readouts of the watchdog
132 static struct clocksource *watchdog;
165 * If kthread_run fails the next watchdog scan over the
194 * clocksource_mark_unstable - mark clocksource unstable via watchdog
231 *wdnow = watchdog->read(watchdog);
233 wd_end = watchdog->read(watchdog);
234 wd_end2 = watchdog->read(watchdog);
237 wd_delta = clocksource_delta(wd_end, *wdnow, watchdog->mask);
238 wd_delay = clocksource_cyc2ns(wd_delta, watchdog->mult,
239 watchdog->shift);
242 pr_warn("timekeeping watchdog on CPU%d: %s retried %d times before success\n",
243 smp_processor_id(), watchdog->name, nretries);
249 * Now compute delay in consecutive watchdog read to see if
251 * significant delay in reading both clocksource and watchdog.
254 * report system busy, reinit the watchdog and skip the current
255 * watchdog test.
257 wd_delta = clocksource_delta(wd_end2, wd_end, watchdog->mask);
258 wd_seq_delay = clocksource_cyc2ns(wd_delta, watchdog->mult, watchdog->shift);
263 pr_warn("timekeeping watchdog on CPU%d: wd-%s-wd excessive read-back delay of %lldns vs. limit of %ldns, wd-wd read-back delay only %lldns, attempt %d, marking %s unstable\n",
268 pr_info("timekeeping watchdog on CPU%d: %s wd-wd read-back delay of %lldns\n",
269 smp_processor_id(), watchdog->name, wd_seq_delay);
435 * watchdog/clocksource is very big, and affect the accuracy of
436 * watchdog check. So give system some space and suspend the
437 * watchdog check for 5 minutes.
441 * As the watchdog timer will be suspended, and
459 delta = clocksource_delta(wdnow, cs->wd_last, watchdog->mask);
460 wd_nsec = clocksource_cyc2ns(delta, watchdog->mult,
461 watchdog->shift);
476 * manner), which causes the watchdog interval to stretch.
477 * Skew detection may fail for longer watchdog intervals
480 * watchdog intervals longer than a few seconds.
487 pr_warn("Long readout interval, skipping watchdog check: cs_nsec: %lld wd_nsec: %lld\n",
494 /* Check the deviation from the watchdog clocksource. */
495 md = cs->uncertainty_margin + watchdog->uncertainty_margin;
501 pr_warn("timekeeping watchdog on CPU%d: Marking clocksource '%s' as unstable because the skew is too large:\n",
504 watchdog->name, wd_nsec, wdnow, wdlast, watchdog->mask);
509 pr_warn(" Clocksource '%s' skewed %lld ns (%lld ms) over watchdog '%s' interval of %lld ns (%lld ms)\n",
510 cs->name, cs_nsec - wd_nsec, cs_wd_msec, watchdog->name, wd_nsec, wd_msec);
526 (watchdog->flags & CLOCK_SOURCE_IS_CONTINUOUS)) {
539 * the watchdog thread reselect it. Due to the
583 if (watchdog_running || !watchdog || list_empty(&watchdog_list))
593 if (!watchdog_running || (watchdog && !list_empty(&watchdog_list)))
613 /* cs is a watchdog. */
625 /* save current watchdog */
626 old_wd = watchdog;
628 watchdog = NULL;
639 /* Pick the best watchdog. */
640 if (!watchdog || cs->rating > watchdog->rating)
641 watchdog = cs;
644 if (!watchdog)
645 watchdog = old_wd;
647 /* If we changed the watchdog we need to reset cycles. */
648 if (watchdog != old_wd)
651 /* Check if the watchdog timer needs to be started. */
658 if (cs != watchdog) {
662 /* Check if the watchdog timer needs to be stopped. */
692 /* Check if the watchdog timer needs to be stopped. */
710 return cs == watchdog;
894 * clocksource_touch_watchdog - Update watchdog
896 * Update the watchdog after exception contexts such as kgdb so as not
897 * to incorrectly trip the watchdog. This might fail when the kernel
1033 * Deferring to let the watchdog check.
1082 * Run the watchdog first to eliminate unstable clock sources
1277 /* Select and try to install a replacement watchdog. */