“cac48b2accc7d92b5cf76450cfab26c8b5f73c15”上不存在“src/git@gitcode.net:qq_41923622/NodeJS_06.git”
  • S
    tracepoints: Do not punish non static call users · d9a1be1b
    Steven Rostedt (VMware) 提交于
    With static calls, a tracepoint can call the callback directly if there is
    only one callback registered to that tracepoint. When there is more than
    one, the static call will call the tracepoint's "iterator" function, which
    needs to reload the tracepoint's "funcs" array again, as it could have
    changed since the first time it was loaded.
    
    But an arch without static calls is punished by having to load the
    tracepoint's "funcs" array twice. Once in the DO_TRACE macro, and once
    again in the iterator macro.
    
    For archs without static calls, there's no reason to load the array macro
    in the first place, since the iterator function will do it anyway.
    
    Change the __DO_TRACE_CALL() macro to do the load and call of the
    tracepoints funcs array only for architectures with static calls, and just
    call the iterator function directly for architectures without static calls.
    
    Link: https://lkml.kernel.org/r/20210208201050.909329787@goodmis.orgAcked-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: NSteven Rostedt (VMware) <rostedt@goodmis.org>
    d9a1be1b
tracepoint.h 17.8 KB