[RESEND][PATCH v3 00/17] Add static_call()
Thread information
[Search the linux-kernel archive]
Peter Zijlstra [this message] ` [RESEND][PATCH v3 01/17] notifier: Fix broken error handling pattern Peter Zijlstra ` [RESEND][PATCH v3 02/17] module: Fix up module_notifier return values Peter Zijlstra ` [RESEND][PATCH v3 03/17] module: Properly propagate MODULE_STATE_COMING failure Peter Zijlstra ` Jessica Yu ` Josh Poimboeuf ` Miroslav Benes ` [RESEND][PATCH v3 04/17] jump_label,module: Fix module lifetime for __jump_label_mod_text_reserved Peter Zijlstra ` [RESEND][PATCH v3 05/17] compiler.h: Make __ADDRESSABLE() symbol truly unique Peter Zijlstra ` [RESEND][PATCH v3 06/17] static_call: Add basic static call infrastructure Peter Zijlstra ` Nadav Amit ` Peter Zijlstra ` Nadav Amit ` Peter Zijlstra ` Nadav Amit ` Peter Zijlstra ` [RESEND][PATCH v3 07/17] static_call: Add inline " Peter Zijlstra ` Borislav Petkov ` [RESEND][PATCH v3 08/17] static_call: Avoid kprobes on inline static_call()s Peter Zijlstra ` [RESEND][PATCH v3 09/17] x86/static_call: Add out-of-line static call implementation Peter Zijlstra ` Borislav Petkov ` Fangrui Song ` Peter Zijlstra ` Nick Desaulniers ` [RESEND][PATCH v3 10/17] x86/static_call: Add inline static call implementation for x86-64 Peter Zijlstra ` Borislav Petkov ` Peter Zijlstra ` [RESEND][PATCH v3 11/17] static_call: Simple self-test Peter Zijlstra ` Borislav Petkov ` Peter Zijlstra ` Borislav Petkov ` [RESEND][PATCH v3 12/17] tracepoint: Optimize using static_call() Peter Zijlstra ` [RESEND][PATCH v3 13/17] x86/alternatives: Teach text_poke_bp() to emulate RET Peter Zijlstra ` [RESEND][PATCH v3 14/17] static_call: Add static_cond_call() Peter Zijlstra ` Linus Torvalds ` Andy Lutomirski ` Linus Torvalds ` Peter Zijlstra ` Peter Zijlstra ` Linus Torvalds ` hpa ` Linus Torvalds ` Peter Zijlstra ` Peter Zijlstra ` Rasmus Villemoes ` Peter Zijlstra ` Rasmus Villemoes ` [RESEND][PATCH v3 15/17] static_call: Handle tail-calls Peter Zijlstra ` [RESEND][PATCH v3 16/17] static_call: Allow early init Peter Zijlstra ` [RESEND][PATCH v3 17/17] x86/perf, static_call: Optimize x86_pmu methods Peter Zijlstra ` [RESEND][PATCH v3 00/17] Add static_call() Peter Zijlstra
From: | Peter Zijlstra <peterz-AT-infradead.org> | |
To: | x86-AT-kernel.org | |
Subject: | [RESEND][PATCH v3 00/17] Add static_call() | |
Date: | Tue, 24 Mar 2020 14:56:03 +0100 | |
Message-ID: | <[email protected]> | |
Cc: | peterz-AT-infradead.org, linux-kernel-AT-vger.kernel.org, rostedt-AT-goodmis.org, mhiramat-AT-kernel.org, bristot-AT-redhat.com, jbaron-AT-akamai.com, torvalds-AT-linux-foundation.org, tglx-AT-linutronix.de, mingo-AT-kernel.org, namit-AT-vmware.com, hpa-AT-zytor.com, luto-AT-kernel.org, ard.biesheuvel-AT-linaro.org, jpoimboe-AT-redhat.com |
[resend; because of the typo in the lkml address] 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 can also be found here: git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git x86/static_call Comments?