[PATCH RFC v2 06/24] hazptrtorture: Enable system-independent CPU overcommit

From: Paul E. McKenney

Date: Wed Jul 15 2026 - 20:21:21 EST


This commit interprets negative values of the nreaders module parameter
as a number of readers per CPU, so that hazptrtorture.nreaders=-5 would
spawn five hazard-pointer reader kthreads per CPU. As CPUs go offline,
a number of readers determined by the overcommit are idled, so that
again when hazptrtorture.nreaders=-5, five readers would be idled for
each offline CPU.

Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>
---
kernel/rcu/hazptrtorture.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/rcu/hazptrtorture.c b/kernel/rcu/hazptrtorture.c
index 4dd31104779fe8..21a72667554fe0 100644
--- a/kernel/rcu/hazptrtorture.c
+++ b/kernel/rcu/hazptrtorture.c
@@ -362,7 +362,7 @@ static int hazptr_torture_reader(void *arg)
struct hazptr_torture *htp;
unsigned long lastsleep = jiffies;
long myid = (long)arg;
- int mynumonline = myid;
+ int mynumonline = myid % nr_cpu_ids;
int pipe_count;
DEFINE_TORTURE_RANDOM(rand);

@@ -623,7 +623,7 @@ static int __init hazptr_torture_init(void)
if (nreaders >= 0) {
nrealreaders = nreaders;
} else {
- nrealreaders = num_online_cpus() - 2 - nreaders;
+ nrealreaders = num_online_cpus() * -nreaders;
if (nrealreaders <= 0)
nrealreaders = 1;
}
--
2.40.1