mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 18:09:56 +00:00
tracing: Have tracing_snapshot_instance_cond() write errors to the appropriate instance
If a trace instance has a failure with its snapshot code, the error
message is to be written to that instance's buffer. But currently, the
message is written to the top level buffer. Worse yet, it may also disable
the top level buffer and not the instance that had the issue.
Link: https://lkml.kernel.org/r/20230405022341.688730321@goodmis.org
Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Ross Zwisler <zwisler@google.com>
Fixes: 2824f50332 ("tracing: Make the snapshot trigger work with instances")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
@@ -1149,22 +1149,22 @@ static void tracing_snapshot_instance_cond(struct trace_array *tr,
|
|||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
if (in_nmi()) {
|
if (in_nmi()) {
|
||||||
internal_trace_puts("*** SNAPSHOT CALLED FROM NMI CONTEXT ***\n");
|
trace_array_puts(tr, "*** SNAPSHOT CALLED FROM NMI CONTEXT ***\n");
|
||||||
internal_trace_puts("*** snapshot is being ignored ***\n");
|
trace_array_puts(tr, "*** snapshot is being ignored ***\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tr->allocated_snapshot) {
|
if (!tr->allocated_snapshot) {
|
||||||
internal_trace_puts("*** SNAPSHOT NOT ALLOCATED ***\n");
|
trace_array_puts(tr, "*** SNAPSHOT NOT ALLOCATED ***\n");
|
||||||
internal_trace_puts("*** stopping trace here! ***\n");
|
trace_array_puts(tr, "*** stopping trace here! ***\n");
|
||||||
tracing_off();
|
tracer_tracing_off(tr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Note, snapshot can not be used when the tracer uses it */
|
/* Note, snapshot can not be used when the tracer uses it */
|
||||||
if (tracer->use_max_tr) {
|
if (tracer->use_max_tr) {
|
||||||
internal_trace_puts("*** LATENCY TRACER ACTIVE ***\n");
|
trace_array_puts(tr, "*** LATENCY TRACER ACTIVE ***\n");
|
||||||
internal_trace_puts("*** Can not use snapshot (sorry) ***\n");
|
trace_array_puts(tr, "*** Can not use snapshot (sorry) ***\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user