• Steven Rostedt (VMware)'s avatar
    tracepoints: Add helper to test if tracepoint is enabled in a header · afbe7973
    Steven Rostedt (VMware) authored
    As tracepoints are discouraged from being added in a header because it can
    cause side effects if other tracepoints are in headers, as well as bloat the
    kernel as the trace_<tracepoint>() function is not a small inline, the common
    workaround is to add a function call that calls a wrapper function in a
    C file that then calls the tracepoint. But as function calls add overhead,
    this function should only be called when the tracepoint in question is
    enabled. To get around this overhead, a static_branch can be used to only
    have the tracepoint wrapper get called when the tracepoint is enabled.
    
    Add a tracepoint_enabled(tp) macro that gets passed the name of the
    tracepoint, and this becomes a static_branch that is enabled when the
    tracepoint is enabled and is a nop when the tracepoint is disabled.
    Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
    afbe7973
tracepoints.rst 5.95 KB