|
|
Subscribe / Log in / New account

[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?



Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds