[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20211206185823.GC641268@paulmck-ThinkPad-P17-Gen-1>
Date: Mon, 6 Dec 2021 10:58:23 -0800
From: "Paul E. McKenney" <paulmck@...nel.org>
To: Waiman Long <longman@...hat.com>
Cc: John Stultz <john.stultz@...aro.org>,
Thomas Gleixner <tglx@...utronix.de>,
Stephen Boyd <sboyd@...nel.org>,
Feng Tang <feng.tang@...el.com>, linux-kernel@...r.kernel.org
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@...hat.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
>
Powered by blists - more mailing lists