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

From: Steven Rostedt
Date: Mon Feb 26 2024 - 13:42:47 EST


On Mon, 26 Feb 2024 08:51:58 +0900
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> 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],
>
> Would you mean "ftrace_dump_on_oops,<instance1_name>" ?

??

> As far as I can see, it doesn't work. Command line parser requires "="
> for parameter value.

Not sure what you mean, but it does work with:

ftrace_dump_on_oops=1,foo=2

As well as

ftrace_dump_on_oops=foo


If you want to dump with an instance, yes you need a '=' sign.

> Also, is there any reason to limit the parameter
> to 2 or orig_cpu?

There's 3 options: 0 = off, 1 = all (default), 2 = orig_cpu

I don't see it limited.

You don't need the equal sign if you just want the top buffer.

>
> What about this syntax?
>
> ftrace_dump_on_oops=<0|1|2|orig_cpu>[,<instance_name>[=<1|2|orig_cpu>][,...]

That should work now. But why add the requirement of an '=' as that isn't
needed now? That is, the syntax is:

ftrace_dump_on_oops[=[<0|1|2|orig_cpu>,][<instance_name>[=<1|2|orig_cpu>][,...]]

>
> or
>
> ftrace_dump_on_oops=instance_name[=<1|2|orig_cpu>][,...]

This works.

>
> or
>
> ftrace_dump_on_oops

This works.

>
> e.g.
> "ftrace_dump_on_oops=0,foo=orig_cpu" is equal to "ftrace_dump_on_oops=foo=orig_cpu"
>

And that does.

I think this patch does what you are asking for.

-- Steve