tracing: Have the trace_event benchmark thread call cond_resched_rcu_qs()
authorSteven Rostedt (VMware) <rostedt@goodmis.org>
Tue, 11 Apr 2017 22:25:08 +0000 (18:25 -0400)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Mon, 17 Apr 2017 19:21:19 +0000 (15:21 -0400)
commitb980b117c9ff17226937128a15692a18c9a28ed6
treef4f1d2911131998ea103c58846b516ce4c039bbf
parentfcdc71257923263d042236eaf62bae5e033757b5
tracing: Have the trace_event benchmark thread call cond_resched_rcu_qs()

The trace_event benchmark thread runs in kernel space in an infinite loop
while also calling cond_resched() in case anything else wants to schedule
in. Unfortunately, on a PREEMPT kernel, that makes it a nop, in which case,
this will never voluntarily schedule. That will cause synchronize_rcu_tasks()
to forever block on this thread, while it is running.

This is exactly what cond_resched_rcu_qs() is for. Use that instead.

Acked-by: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
kernel/trace/trace_benchmark.c