lkml.org 
[lkml]   [2021]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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
>

\
 
 \ /
  Last update: 2021-12-06 19:59    [W:0.029 / U:0.196 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site