Re: [PATCH clocksource 4/5] clocksource: Provide a module parameter to fuzz per-CPU clock checking

Randy Dunlap
2021-02-02T19:53:12Z

On 2/2/21 9:06 AM, paulmck@kernel.org wrote:
> From: "Paul E. McKenney" <paulmck@kernel.org>
>
> Code that checks for clock desynchronization must itself be tested, so
> this commit creates a new clocksource.inject_delay_shift_percpu= kernel
> boot parameter that adds or subtracts a large value from the check read,
> using the specified bit of the CPU ID to determine whether to add or
> to subtract.
>
> Cc: John Stultz <john.stultz@linaro.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Jonathan Corbet <corbet@lwn.net>
> Cc: Mark Rutland <Mark.Rutland@arm.com>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Andi Kleen <ak@linux.intel.com>
> Reported-by: Chris Mason <clm@fb.com>
> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
> ---
> Documentation/admin-guide/kernel-parameters.txt | 9 +++++++++
> kernel/time/clocksource.c | 10 +++++++++-
> 2 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index 9965266..f561e94 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -593,6 +593,15 @@
> times the value specified for inject_delay_freq
> of consecutive non-delays.
>
> + clocksource.inject_delay_shift_percpu= [KNL]
> + Shift count to obtain bit from CPU number to
> + determine whether to shift the time of the per-CPU
> + clock under test ahead or behind. For example,

It's a good think that you give an example -- it helps a little bit.
That sentence above needs to be rewritten...

> + setting this to the value four will result in
> + alternating groups of 16 CPUs shifting ahead and
> + the rest of the CPUs shifting behind. The default
> + value of -1 disable this type of error injection.

disables

> +
> clocksource.max_read_retries= [KNL]
> Number of clocksource_watchdog() retries due to
> external delays before the clock will be marked

--
~Randy