rcutorture: Make stutter_wait() caller restore priority
authorPaul E. McKenney <paulmck@kernel.org>
Tue, 22 Sep 2020 23:42:42 +0000 (16:42 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Sat, 7 Nov 2020 01:13:54 +0000 (17:13 -0800)
commitab1b7880dec86bbdacd31a4c5cf104de4cf903f2
tree00b58346317e403e0a707fe666a0c6aa25a01830
parentc1e06287583e5ec496e4c02bf5b319e5e41a1fd2
rcutorture:  Make stutter_wait() caller restore priority

Currently, stutter_wait() will happily spin waiting for the stutter
interval to end even if the caller is running at a real-time priority
level.  This could starve normal-priority tasks for no good reason.  This
commit therefore drops the calling task's priority to SCHED_OTHER MAX_NICE
if stutter_wait() needs to wait.  But when it waits, stutter_wait()
returns true, which allows the caller to restore the priority if needed.
Callers that were already running at SCHED_OTHER MAX_NICE obviously
do not need any changes, but this commit also restores priority for
higher-priority callers.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/rcu/rcutorture.c
kernel/torture.c