Skip to contentSkip to conversation

FAILED: patch "[PATCH] tracing: Dump stacktrace trigger to the corresponding" failed to apply to 5.10-stable tree

PATCH [email protected] 2 participants 2 messages Feb 28, 2022 – Apr 20, 2022

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 5.10-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 ce33c845b030c9cf768370c951bc699470b09fa7 Mon Sep 17 00:00:00 2001
From: Daniel Bristot de Oliveira <[email protected]>
Date: Sun, 20 Feb 2022 23:49:57 +0100
Subject: [PATCH] tracing: Dump stacktrace trigger to the corresponding
instance

The stacktrace event trigger is not dumping the stacktrace to the instance where it was enabled, but to the global "instance."

Use the private_data, pointing to the trigger file, to figure out the corresponding trace instance, and use it in the trigger action, like snapshot_trigger does.

Fixes ae63b31e4d0e2 ("tracing: Separate out trace events from global variables")
kernel/trace/trace_events_trigger.c +6 -1
index d00fee705f9c..e0d50c9577f3 100644
@@ -1540,7 +1540,12 @@ stacktrace_trigger(struct event_trigger_data *data,
 		   struct trace_buffer *buffer,  void *rec,
 		   struct ring_buffer_event *event)
 {
-	trace_dump_stack(STACK_SKIP);
+	struct trace_event_file *file = data->private_data;
+
+	if (file)
+		__trace_stack(file->tr, tracing_gen_ctx(), STACK_SKIP);
+	else
+		trace_dump_stack(STACK_SKIP);
 }
 
 static void
maintainer Reviewed-by Tom Zanussi Tested-by Tom Zanussi
#1 lore raw
Quoted 5 lines · On Mon, 28 Feb 2022 08:31:49 +0100 <[email protected]> wrote:

The patch below does not apply to the 5.10-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]>.

The below should work for 5.10 back through 4.19.

-- Steve

Quoted 1 line

From ce33c845b030c9cf768370c951bc699470b09fa7 Mon Sep 17 00:00:00 2001

From: Daniel Bristot de Oliveira <[email protected]>
Date: Sun, 20 Feb 2022 23:49:57 +0100
Subject: [PATCH] tracing: Dump stacktrace trigger to the corresponding
instance

The stacktrace event trigger is not dumping the stacktrace to the instance where it was enabled, but to the global "instance."

Use the private_data, pointing to the trigger file, to figure out the corresponding trace instance, and use it in the trigger action, like snapshot_trigger does.

Fixes ae63b31e4d0e2 ("tracing: Separate out trace events from global variables")
---
 kernel/trace/trace_events_trigger.c |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
kernel/trace/trace_events_trigger.c +8 -1
Index: linux-test.git/kernel/trace/trace_events_trigger.c
===================================================================
@@ -1219,7 +1219,14 @@ static void
 stacktrace_trigger(struct event_trigger_data *data, void *rec,
 		   struct ring_buffer_event *event)
 {
-	trace_dump_stack(STACK_SKIP);
+	struct trace_event_file *file = data->private_data;
+	unsigned long flags;
+
+	if (file) {
+		local_save_flags(flags);
+		__trace_stack(file->tr, flags, STACK_SKIP, preempt_count());
+	} else
+		trace_dump_stack(STACK_SKIP);
 }
 
 static void