On Mon, Apr 21, 2025 at 01:53:17PM -0400, Joel Fernandes wrote: > On 4/21/2025 1:47 PM, Joel Fernandes wrote: > > Currently, the ->gpwrap is not tested (at all per my testing) due to the > > requirement of a large delta between a CPU's rdp->gp_seq and its node's > > rnp->gpseq. > > > > This results in no testing of ->gpwrap being set. This patch by default > > adds 5 minutes of testing with ->gpwrap forced by lowering the delta > > between rdp->gp_seq and rnp->gp_seq to just 8 GPs. All of this is > > configurable, including the active time for the setting and a full > > testing cycle. > > > > By default, the first 25 minutes of a test will have the _default_ > > behavior there is right now (ULONG_MAX / 4) delta. Then for 5 minutes, > > we switch to a smaller delta causing 1-2 wraps in 5 minutes. I believe > > this is reasonable since we at least add a little bit of testing for > > usecases where ->gpwrap is set. > > > > Tested-by: Paul E. McKenney <paulmck@xxxxxxxxxx> > > Signed-off-by: Joel Fernandes <joelagnelf@xxxxxxxxxx> > > --- > > v4->v5 > > - Added gpwrap_lag torture param to turn off entire test. > > - replaced references to 'ovf' with 'gpwrap lag'. > > > > Will move this to my rcu/torture-for-6.16 and update my rcu/for-next branches. > > > > .../admin-guide/kernel-parameters.txt | 5 ++ > > kernel/rcu/rcu.h | 4 ++ > > kernel/rcu/rcutorture.c | 72 ++++++++++++++++++- > > kernel/rcu/tree.c | 34 ++++++++- > > kernel/rcu/tree.h | 1 + > > 5 files changed, 113 insertions(+), 3 deletions(-) > > > > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt > > index 76e538c77e31..e1d11b6595fd 100644 > > --- a/Documentation/admin-guide/kernel-parameters.txt > > +++ b/Documentation/admin-guide/kernel-parameters.txt > > @@ -5657,6 +5657,11 @@ > > are zero, rcutorture acts as if is interpreted > > they are all non-zero. > > > > + rcutorture.gpwrap_lag= [KNL] > > + Enable grace-period wrap lag testing. Setting > > + to false prevents the gpwrap lag test from > > + running. > > + > FYI, I added docs for the additional params here as well: Even better, thank you! > + rcutorture.gpwrap_lag= [KNL] > + Enable grace-period wrap lag testing. Setting > + to false prevents the gpwrap lag test from > + running. > + > + rcutorture.gpwrap_lag_gps= [KNL] > + Set the value for grace-period wrap lag during > + active lag testing periods. This controls how many > + grace periods differences we tolerate between > + rdp and rnp's gp_seq before setting overflow flag. I suggest adding the default, as well as the default when no testing is taking place. Thanx, Paul > + rcutorture.gpwrap_lag_cycle_mins= [KNL] > + Set the total cycle duration for gpwrap lag > + testing in minutes. This is the total time for > + one complete cycle of active and inactive > + testing periods. Default is 30 minutes. > + > + rcutorture.gpwrap_lag_active_mins= [KNL] > + Set the duration for which gpwrap lag is active > + within each cycle, in minutes. During this time, > + the grace-period wrap lag will be set to the > + value specified by gpwrap_lag_gps. Default is > + 5 minutes. > + > > > Will push this to my rcu/torture-for-6.16 and also update my rcu/for-next branch. > > - Joel > >