Re: [PATCH tip/core/rcu 04/13] rcutorture: Allow negative values of nreaders to oversubscribe

Paul E. McKenney
2015-05-13T20:58:46Z

On Tue, May 12, 2015 at 06:03:13PM -0700, josh@joshtriplett.org wrote:
> On Tue, May 12, 2015 at 03:58:04PM -0700, Paul E. McKenney wrote:
> > From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
> >
> > By default, with rcutorture.nreaders equal to -1, rcutorture provisions
> > N-1 reader kthreads, where N is the number of CPUs. This avoids
> > rcutorture-induced stalls, but also avoids heavier levels of torture.
> > This commit therefore allows negative values of rcutorture.nreaders
> > to specify larger numbers of reader kthreads, so that for example
> > rcutorture.nreaders=-2 provisions N kthreads and rcutorture.nreaders=-5
> > provisions N+3 kthreads.
> >
> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
>
> That seems rather excessively arcane. Then again, I guess we started
> down the road to arcana when we allowed -1 to mean N-1.

Indeed...

> However, could you please document this in the module parameter
> documentation?

Good point, fixed!

Thanx, Paul

> > kernel/rcu/rcutorture.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
> > index a67ef6ff86b0..7294d605c481 100644
> > --- a/kernel/rcu/rcutorture.c
> > +++ b/kernel/rcu/rcutorture.c
> > @@ -1701,7 +1701,7 @@ rcu_torture_init(void)
> > if (nreaders >= 0) {
> > nrealreaders = nreaders;
> > } else {
> > - nrealreaders = num_online_cpus() - 1;
> > + nrealreaders = num_online_cpus() - 2 - nreaders;
> > if (nrealreaders <= 0)
> > nrealreaders = 1;
> > }
> > --
> > 1.8.1.5
> >
>