Re: [PATCH v5] tracing: Support to dump instance traces by ftrace_dump_on_oops

From: Huang Yiwei
Date: Fri Feb 23 2024 - 03:20:45 EST




On 2/23/2024 9:47 AM, Steven Rostedt wrote:
On Thu, 8 Feb 2024 21:18:14 +0800
Huang Yiwei <quic_hyiwei@xxxxxxxxxxx> wrote:

Currently ftrace only dumps the global trace buffer on an OOPs. For
debugging a production usecase, instance trace will be helpful to
check specific problems since global trace buffer may be used for
other purposes.

This patch extend the ftrace_dump_on_oops parameter to dump a specific
or multiple trace instances:

- ftrace_dump_on_oops=0: as before -- don't dump
- ftrace_dump_on_oops[=1]: as before -- dump the global trace buffer
on all CPUs
- ftrace_dump_on_oops=2 or =orig_cpu: as before -- dump the global
trace buffer on CPU that triggered the oops
- ftrace_dump_on_oops=<instance_name>: new behavior -- dump the
tracing instance matching <instance_name>
- ftrace_dump_on_oops[=2/orig_cpu],<instance1_name>[=2/orig_cpu],
<instrance2_name>[=2/orig_cpu]: new behavior -- dump the global trace
buffer and multiple instance buffer on all CPUs, or only dump on CPU
that triggered the oops if =2 or =orig_cpu is given

Also, the sysctl node can handle the input accordingly.

Cc: Ross Zwisler <zwisler@xxxxxxxxxx>
Signed-off-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>
Signed-off-by: Huang Yiwei <quic_hyiwei@xxxxxxxxxxx>

This patch failed with the following warning:

kernel/trace/trace.c:10029:6: warning: no previous prototype for ‘ftrace_dump_one’ [-Wmissing-prototypes]

-- Steve

My bad, will add the missing 'static' keyword in next patch.

Regards,
Huang Yiwei