Re: Reason for unused flags argument in trace_raw_output_* function?

From: Steven Rostedt
Date: Thu Oct 07 2021 - 09:20:35 EST


On Wed, 6 Oct 2021 23:49:22 -0400
William Cohen <wcohen@xxxxxxxxxx> wrote:

> Hi,
>
> I have some code that analyzes x86_64 binaries
> (https://developers.redhat.com/articles/2021/08/09/debugging-function-parameters-
> dyninst#liveness_analysis) and list which function parameters are unused.
> I noticed that trace_raw_output_* functions have an unused flags
> argument. I assume this is is to make the argument list match up with
> some other function, but I couldn't see which function(s) the
> trace_raw_output_* functions are trying to match up with. Which
> functions are the trace_raw_output_* function's arguments trying to match?
>

The match of other printing functions is in kernel/trace/trace_output.c

And is called from kernel/trace/trace.c where one place it does pass in
flags:


static enum print_line_t print_trace_fmt(struct trace_iterator *iter)
{
[..]
if (event)
return event->funcs->trace(iter, sym_flags, event);

Now if they are still used, is something we should investigate.

This code has changed a lot over the years when that "flags" parameter was
introduced. It could now just be a relic from the old implementations.

Thanks for pointing this out. If I get time I'll look deeper into it, but
feel free to look at it yourself.

-- Steve