rcutorture: Avoid RCU CPU stall warning and RT throttling
Running rcuperf can result in RCU CPU stall warnings and RT throttling. These occur because on of the real-time writer processes does ftrace_dump() while still running at real-time priority. This commit therefore prevents these problems by setting the writer thread back to SCHED_NORMAL (AKA SCHED_OTHER) before doing ftrace_dump(). In addition, this commit adds a small fixed delay before dumping ftrace buffer in order to decrease the probability that this dumping will interfere with other writers' grace periods. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
parent
df37e66bfd
commit
620316e52a
|
@ -404,11 +404,15 @@ rcu_perf_writer(void *arg)
|
||||||
started = true;
|
started = true;
|
||||||
if (!done && i >= MIN_MEAS) {
|
if (!done && i >= MIN_MEAS) {
|
||||||
done = true;
|
done = true;
|
||||||
|
sp.sched_priority = 0;
|
||||||
|
sched_setscheduler_nocheck(current,
|
||||||
|
SCHED_NORMAL, &sp);
|
||||||
pr_alert("%s" PERF_FLAG
|
pr_alert("%s" PERF_FLAG
|
||||||
"rcu_perf_writer %ld has %d measurements\n",
|
"rcu_perf_writer %ld has %d measurements\n",
|
||||||
perf_type, me, MIN_MEAS);
|
perf_type, me, MIN_MEAS);
|
||||||
if (atomic_inc_return(&n_rcu_perf_writer_finished) >=
|
if (atomic_inc_return(&n_rcu_perf_writer_finished) >=
|
||||||
nrealwriters) {
|
nrealwriters) {
|
||||||
|
schedule_timeout_interruptible(10);
|
||||||
rcu_ftrace_dump(DUMP_ALL);
|
rcu_ftrace_dump(DUMP_ALL);
|
||||||
PERFOUT_STRING("Test complete");
|
PERFOUT_STRING("Test complete");
|
||||||
t_rcu_perf_writer_finished = t;
|
t_rcu_perf_writer_finished = t;
|
||||||
|
|
Loading…
Reference in a new issue