Re: [PATCH] ftrace: Disable preemption in the tracepoint callbacks handling filtered pids

From: Steven Rostedt

Date: Tue Mar 03 2026 - 09:44:21 EST


On Tue, 3 Mar 2026 13:17:06 +0900
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> wrote:

> diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
> index 9928da636c9d..3b3aaf4831e9 100644
> --- a/kernel/trace/trace_events.c
> +++ b/kernel/trace/trace_events.c
> @@ -1039,6 +1039,7 @@ event_filter_pid_sched_process_exit(void *data, struct task_struct *task)
> struct trace_pid_list *pid_list;
> struct trace_array *tr = data;
>
> + guard(preempt)();
> pid_list = rcu_dereference_raw(tr->filtered_pids);
> trace_filter_add_remove_task(pid_list, NULL, task);
>
> @@ -1054,6 +1055,7 @@ event_filter_pid_sched_process_fork(void *data,
> struct trace_pid_list *pid_list;
> struct trace_array *tr = data;
>
> + guard(preempt)();
> pid_list = rcu_dereference_sched(tr->filtered_pids);
> trace_filter_add_remove_task(pid_list, self, task);
>

Yep. I can make them two different patches. Do you want me to take this as
your patch? I'll need a SoB from you then.

-- Steve