Clocksource watchdog commits for v6.3

This pull request contains the following:

o	Improvements to clocksource-watchdog console messages.

o	Loosening of the clocksource-watchdog skew criteria to match
	those of NTP (500 parts per million, relaxed from 400 parts
	per million).  If it is good enough for NTP, it is good enough
	for the clocksource watchdog.

o	Suspend clocksource-watchdog checking temporarily when high
	memory latencies are detected.	This avoids the false-positive
	clock-skew events that have been seen on production systems
	running memory-intensive workloads.

o	On systems where the TSC is deemed trustworthy, use it as the
	watchdog timesource, but only when specifically requested using
	the tsc=watchdog kernel boot parameter.  This permits clock-skew
	events to be detected, but avoids forcing workloads to use the
	slow HPET and ACPI PM timers.  These last two timers are slow
	enough to cause systems to be needlessly marked bad on the one
	hand, and real skew does sometimes happen on production systems
	running production workloads on the other.  And sometimes it is
	the fault of the TSC, or at least of the firmware that told the
	kernel to program the TSC with the wrong frequency.

o	Add a tsc=revalidate kernel boot parameter to allow the kernel
	to diagnose cases where the TSC hardware works fine, but was told
	by firmware to tick at the wrong frequency.  Such cases are rare,
	but they really have happened on production systems.
clocksource: Enable TSC watchdog checking of HPET and PMTMR only when requested

Unconditionally enabling TSC watchdog checking of the HPET and PMTMR
clocksources can degrade latency and performance.  Therefore, provide
a new "watchdog" option to the tsc= boot parameter that opts into such
checking.  Note that tsc=watchdog is overridden by a tsc=nowatchdog
regardless of their relative positions in the list of boot parameters.

Reported-by: Thomas Gleixner <>
Reported-by: Waiman Long <>
Signed-off-by: Paul E. McKenney <>
Acked-by: Waiman Long <>
2 files changed