Re: [PATCH] tracing: Have the trace_event benchmark thread call cond_resched_rcu_qs()

From: Steven Rostedt
Date: Tue Apr 11 2017 - 18:56:11 EST


On Tue, 11 Apr 2017 18:54:35 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx>
>
> 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.
>
> Cc: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>

This actually should be:

Recommended-by: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>

-- Steve

> Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
> ---