Re: [PATCH v5 00/17] Add static_call()

Peter Zijlstra
2020-07-09T09:02:37Z

On Wed, Jun 24, 2020 at 05:30:24PM +0200, Peter Zijlstra wrote:
> Hi all,
>
> Hopefully for the last time...
>
> static_call(), is the idea of static_branch() applied to indirect function
> calls. Remove a data load (indirection) by modifying the text.
>
> The inline implementation still relies on objtool to generate the
> .static_call_sites section, mostly because this is a natural place for x86_64
> and works for both GCC and LLVM. Other architectures can pick other means
> if/when they implement the inline patching. The out-of-line (aka. trampoline)
> variant doesn't require this.
>
> Patches go on top of tip/objtool/core + tip/perf/core
>
> Patches can also be found here:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git x86/static_call
>
> Changes since the last time:
>
> - Better documentation
> - More consistent macro names
> - Changed key prefix
> - Folded trampoline definitions
> - Renamed DEFINE_STATIC_COND_CALL / DEFINE_STATIC_CALL_NULL

v5.1 (patch 16) has a crash fix found by 0day, synthetic tracepoints
don't have static call sites.

Given the overwhelming feedback on this series, I'm thinking everybody
is in violent agreement with the code this time around (or just really
busy, in which case, consider this a gentle prod to send out your ACK
:-).