Re: [for-next][PATCH 6/8] ftrace: Prevent RCU stall on PREEMPT_VOLUNTARY kernels

From: Guilherme G. Piccoli
Date: Wed Dec 14 2022 - 10:56:26 EST


On 14/12/2022 11:01, Steven Rostedt wrote:
> From: "gpiccoli@xxxxxxxxxx" <gpiccoli@xxxxxxxxxx>

Hi Steve, would be possible to use my full name here, like: Guilherme G.
Piccoli <gpiccoli@xxxxxxxxxx> ?

Thanks,


Guilherme

>
> The function match_records() may take a while due to a large
> number of string comparisons, so when in PREEMPT_VOLUNTARY
> kernels we could face RCU stalls due to that.
>
> Add a cond_resched() to prevent that.
>
> Link: https://lkml.kernel.org/r/20221115204847.593616-1-gpiccoli@xxxxxxxxxx
>
> Cc: Mark Rutland <mark.rutland@xxxxxxx>
> Suggested-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
> Acked-by: Paul E. McKenney <paulmck@xxxxxxxxxx> # from RCU CPU stall warning perspective
> Signed-off-by: Guilherme G. Piccoli <gpiccoli@xxxxxxxxxx>
> Acked-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>
> Signed-off-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx>
> ---
> kernel/trace/ftrace.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index d04552c0c275..b8e374a372e5 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -4204,6 +4204,7 @@ match_records(struct ftrace_hash *hash, char *func, int len, char *mod)
> }
> found = 1;
> }
> + cond_resched();
> } while_for_each_ftrace_rec();
> out_unlock:
> mutex_unlock(&ftrace_lock);