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

From: William Cohen
Date: Thu Oct 07 2021 - 10:31:58 EST


On 10/7/21 09:20, Steven Rostedt wrote:
> 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);


Hi Steve,

Thanks for pointing to where the trace_raw_output_* functions are called from.

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

For the trace_raw_output_* functions the flags arg all seems to be unused. Are there other trace functions should examining for unused args? With the extensive macro use I could see where some vestigial unused argument gets left behind.

>
> 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
>

Thanks again,

-Will