mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-15 11:37:47 +00:00
rcutorture: Ignore attempts to test preemption and forward progress
Use of the rcutorture preempt_duration and the default-on fwd_progress kernel parameters can result in preemption of callback processing during forward-progress testing, which is an excellent way to OOM your test if your kernel offloads RCU callbacks. This commit therefore treats preempt_duration in the same way as stall_cpu in CONFIG_RCU_NOCB_CPU=y kernels, prohibiting fwd_progress testing and splatting when rcutorture is built in (as opposed to being a loadable module). Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
This commit is contained in:
parent
ec9d6356bf
commit
a2ab1e4578
@ -3145,12 +3145,12 @@ static int __init rcu_torture_fwd_prog_init(void)
|
|||||||
fwd_progress = 0;
|
fwd_progress = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (stall_cpu > 0) {
|
if (stall_cpu > 0 || (preempt_duration > 0 && IS_ENABLED(CONFIG_RCU_NOCB_CPU))) {
|
||||||
VERBOSE_TOROUT_STRING("rcu_torture_fwd_prog_init: Disabled, conflicts with CPU-stall testing");
|
VERBOSE_TOROUT_STRING("rcu_torture_fwd_prog_init: Disabled, conflicts with CPU-stall and/or preemption testing");
|
||||||
fwd_progress = 0;
|
fwd_progress = 0;
|
||||||
if (IS_MODULE(CONFIG_RCU_TORTURE_TEST))
|
if (IS_MODULE(CONFIG_RCU_TORTURE_TEST))
|
||||||
return -EINVAL; /* In module, can fail back to user. */
|
return -EINVAL; /* In module, can fail back to user. */
|
||||||
WARN_ON(1); /* Make sure rcutorture notices conflict. */
|
WARN_ON(1); /* Make sure rcutorture scripting notices conflict. */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (fwd_progress_holdoff <= 0)
|
if (fwd_progress_holdoff <= 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user