On 2/2/21 4:50 PM, Paul E. McKenney wrote: > On Tue, Feb 02, 2021 at 11:51:02AM -0800, Randy Dunlap wrote: >> On 2/2/21 9:06 AM, [email protected] wrote: >>> From: "Paul E. McKenney" <[email protected]> >>> >>> 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 <[email protected]> >>> Cc: Thomas Gleixner <[email protected]> >>> Cc: Stephen Boyd <[email protected]> >>> Cc: Jonathan Corbet <[email protected]> >>> Cc: Mark Rutland <[email protected]> >>> Cc: Marc Zyngier <[email protected]> >>> Cc: Andi Kleen <[email protected]> >>> Reported-by: Chris Mason <[email protected]> >>> Signed-off-by: Paul E. McKenney <[email protected]> >>> --- >>> 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... > > That is a bit obscure, now that you mention it. > >>> + 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 > > Good eyes! > > So how about like this?
Much better, thanks. > clocksource.inject_delay_shift_percpu= [KNL] > Clocksource delay injection partitions the CPUs > into two sets, one whose clocks are moved ahead > and the other whose clocks are moved behind. > This kernel parameter selects the CPU-number > bit that determines which of these two sets the > corresponding CPU is placed into. For example, > setting this parameter to the value four will I know that in "writing," "four" should be written out as you have it, but IMO using "4" here would be much better. FWIW. > result in the first set containing alternating > groups of 16 CPUs whose clocks are moved ahead, > while the second set will contain the rest of > the CPUs, whose clocks are moved behind. > > The default value of -1 disables this type of > error injection. > > Thanx, Paul > >>> + >>> clocksource.max_read_retries= [KNL] >>> Number of clocksource_watchdog() retries due to >>> external delays before the clock will be marked thanks! -- ~Randy

