Messages in this thread | | | Date | Mon, 6 Dec 2021 10:58:23 -0800 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH-rcu] clocksource: Add a Kconfig option for WATCHDOG_MAX_SKEW |
| |
On Sun, Dec 05, 2021 at 10:38:15PM -0500, Waiman Long wrote: > A watchdog maximum skew of 100us may still be too small for > some systems or archs. It may also be too small when some kernel > debug config options are enabled. So add a new Kconfig option > CLOCKSOURCE_WATCHDOG_MAX_SKEW_US to allow kernel builders to have more > control on the threshold for marking clocksource as unstable. > > Signed-off-by: Waiman Long <longman@redhat.com>
Queued, thank you!
Thanx, Paul
> --- > kernel/time/Kconfig | 9 +++++++++ > kernel/time/clocksource.c | 8 +++++++- > 2 files changed, 16 insertions(+), 1 deletion(-) > > diff --git a/kernel/time/Kconfig b/kernel/time/Kconfig > index 04bfd62f5e5c..27b7868b5c30 100644 > --- a/kernel/time/Kconfig > +++ b/kernel/time/Kconfig > @@ -181,5 +181,14 @@ config HIGH_RES_TIMERS > hardware is not capable then this option only increases > the size of the kernel image. > > +config CLOCKSOURCE_WATCHDOG_MAX_SKEW_US > + int "Clocksource watchdog maximum allowable skew (in μs)" > + depends on CLOCKSOURCE_WATCHDOG > + range 50 1000 > + default 100 > + help > + Specify the maximum amount of allowable watchdog skew in > + microseconds before reporting the clocksource to be unstable. > + > endmenu > endif > diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c > index b7e52a642948..877a78bea9b0 100644 > --- a/kernel/time/clocksource.c > +++ b/kernel/time/clocksource.c > @@ -107,7 +107,13 @@ static u64 suspend_start; > * This delay could be due to SMIs, NMIs, or to VCPU preemptions. Used as > * a lower bound for cs->uncertainty_margin values when registering clocks. > */ > -#define WATCHDOG_MAX_SKEW (100 * NSEC_PER_USEC) > +#ifdef CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US > +#define MAX_SKEW_USEC CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US > +#else > +#define MAX_SKEW_USEC 100 > +#endif > + > +#define WATCHDOG_MAX_SKEW (MAX_SKEW_USEC * NSEC_PER_USEC) > > #ifdef CONFIG_CLOCKSOURCE_WATCHDOG > static void clocksource_watchdog_work(struct work_struct *work); > -- > 2.27.0 >
| |