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

josh
2015-05-13T01:03:20Z

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.

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

> 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
>