FAILED: patch "[PATCH] tracing: Have traceon and traceoff trigger honor the instance" failed to apply to 4.9-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 302e9edd54985f584cfc180098f3554774126969 Mon Sep 17 00:00:00 2001
From: "Steven Rostedt (Google)" <[email protected]>
Date: Wed, 23 Feb 2022 22:38:37 -0500
Subject: [PATCH] tracing: Have traceon and traceoff trigger honor the instance
If a trigger is set on an event to disable or enable tracing within an instance, then tracing should be disabled or enabled in the instance and not at the top level, which is confusing to users.
kernel/trace/trace_events_trigger.c +46 -6
@@ -1295,6 +1295,16 @@ traceon_trigger(struct event_trigger_data *data, struct trace_buffer *buffer, void *rec, struct ring_buffer_event *event) { + struct trace_event_file *file = data->private_data; + +if (file) { +if (tracer_tracing_is_on (file->tr)) +return ; + +tracer_tracing_on (file->tr); +return ; + } +if (tracing_is_on ())return ;
@@ -1306,8 +1316,15 @@ traceon_count_trigger(struct event_trigger_data *data, struct trace_buffer *buffer, void *rec, struct ring_buffer_event *event) { - if (tracing_is_on()) - return; + struct trace_event_file *file = data->private_data; + +if (file) { +if (tracer_tracing_is_on (file->tr)) +return ; + }else { +if (tracing_is_on ()) +return ; + }if (!data->count)return ;
@@ -1315,7 +1332,10 @@ traceon_count_trigger(struct event_trigger_data *data,if (data->count !=-1 ) (data->count)--; -tracing_on (); +if (file) +tracer_tracing_on (file->tr); +else +tracing_on (); } static void
@@ -1323,6 +1343,16 @@ traceoff_trigger(struct event_trigger_data *data, struct trace_buffer *buffer, void *rec, struct ring_buffer_event *event) { + struct trace_event_file *file = data->private_data; + +if (file) { +if (!tracer_tracing_is_on (file->tr)) +return ; + +tracer_tracing_off (file->tr); +return ; + } +if (!tracing_is_on ())return ;
@@ -1334,8 +1364,15 @@ traceoff_count_trigger(struct event_trigger_data *data, struct trace_buffer *buffer, void *rec, struct ring_buffer_event *event) { - if (!tracing_is_on()) - return; + struct trace_event_file *file = data->private_data; + +if (file) { +if (!tracer_tracing_is_on (file->tr)) +return ; + }else { +if (!tracing_is_on ()) +return ; + }if (!data->count)return ;
@@ -1343,7 +1380,10 @@ traceoff_count_trigger(struct event_trigger_data *data,if (data->count !=-1 ) (data->count)--; -tracing_off (); +if (file) +tracer_tracing_off (file->tr); +else +tracing_off (); } static int
Steven Rostedt
maintainerQuoted 4 lines · On Mon, 28 Feb 2022 07:32:59 +0100 <[email protected]> wrote:
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Unfortunately, this has a lot more missing that needs to be added to make this work for 4.9. I don't have the time to update it :-/ It's not a critical bug. Just one that gives surprising behavior.
-- Steve