Re: [PATCH v2] tracing: Restore synchronize_rcu() before freeing trigger private data

Steven Rostedt <[email protected]>
Newsgroups org.kernel.vger.linux-trace-kernel,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Thu, 23 Jul 2026 18:02:12 +0100
David Carlier <[email protected]> wrote:

> ---
>  kernel/trace/trace_events_hist.c    | 3 +++
>  kernel/trace/trace_events_trigger.c | 1 +
>  2 files changed, 4 insertions(+)
> 
> diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
> index 82ce492ab268..ddd2f70dac4f 100644
> --- a/kernel/trace/trace_events_hist.c
> +++ b/kernel/trace/trace_events_hist.c
> @@ -6349,6 +6349,8 @@ static void event_hist_trigger_free(struct event_trigger_data *data)
>  
>  		trigger_data_free(data);
>  
> +		synchronize_rcu();

According to Sashiko[1], it appears we actually need tracepoint_synchronize_unregister().
And I believe Sashiko is actually correct.

> +
>  		remove_hist_vars(hist_data);
>  
>  		unregister_field_var_hists(hist_data);
> @@ -6388,6 +6390,7 @@ static void event_hist_trigger_named_free(struct
> event_trigger_data *data) 
>  		del_named_trigger(data);
>  		trigger_data_free(data);
> +		synchronize_rcu();

This needs to be changed too.

>  		kfree(cmd_ops);
>  	}
>  }
> diff --git a/kernel/trace/trace_events_trigger.c
> b/kernel/trace/trace_events_trigger.c index 655db2e82513..c3f54f2540b6
> 100644 --- a/kernel/trace/trace_events_trigger.c
> +++ b/kernel/trace/trace_events_trigger.c
> @@ -1730,6 +1730,7 @@ void event_enable_trigger_free(struct
> event_trigger_data *data) trace_event_enable_disable(enable_data->file,
> 0, 1); trace_event_put_ref(enable_data->file->event_call);
>  		trigger_data_free(data);
> +		synchronize_rcu();

According to Sashiko, this one basically causes a revert of the original
delay. 

OK, let's bring back a partial part of your original patch. Have the
"free_private()" again, but only apply it to this trigger, and switch the
above other to synchronize_rcu() into the tracepoint_synchronize_unregister().

Thanks,

-- Steve

>  		kfree(enable_data);
>  	}

[1] https://sashiko.dev/#/patchset/20260723170212.55325-1-devnexen%40gmail.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.