Re: [PATCH 1/2] tracepoints: Add helper to test if tracepoint is enabled in a header

Mathieu Desnoyers
2020-09-25T15:30:10Z

----- On Sep 25, 2020, at 11:14 AM, rostedt rostedt@goodmis.org wrote:

> On Fri, 25 Sep 2020 10:41:56 -0400 (EDT)
> Mathieu Desnoyers <mathieu.desnoyers@efficios.com> wrote:
>
>> With the current dependencies of tracepoint.h, I would argue that we should
>> only do the trampoline work-around for cases where there is an unavoidable
>> circular dependency, like the case of msr.h. For other headers which don't
>> have circular dependency issues with tracepoint.h, we should use the usual
>> tracepoint instrumentation because not having the trampoline provides better
>> tracing (on) speed and reduces (slightly) code size.
>
> Well, for now, I'm going to add the helper function and have the header
> use cases use that.
>
> A while back ago I had patches that moves the DO_TRACE() work into a
> separate function and with that we probably could have let all
> tracepoints be in headers (as they would all just do a function call to
> the trace algorithm that does the rest of the work). But you balked at
> that because of the added overhead with tracing on.
>
> Anyway, I don't see any issues with the current patch set as is
> (besides the documentation fix, which I already updated locally). And
> will add this to my queue for linux-next.

The only thing I would change in the documentation is to word this as
"here is a trampoline trick which can be used to work-around rare cases
of tracepoint header circular dependency issues" rather than "always use
this when instrumenting a header".

Thanks,

Mathieu

--
Mathieu Desnoyers
EfficiOS Inc.