From: Benjamin Gray <bgray@linux.ibm.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: ajd@linux.ibm.com, peterz@infradead.org,
Benjamin Gray <bgray@linux.ibm.com>,
npiggin@gmail.com, ardb@kernel.org, jbaron@akamai.com,
rostedt@goodmis.org, jpoimboe@kernel.org
Subject: [PATCH v4 0/6] Out-of-line static calls for powerpc64 ELF V2
Date: Mon, 10 Oct 2022 11:29:51 +1100 [thread overview]
Message-ID: <20221010002957.128276-1-bgray@linux.ibm.com> (raw)
Implementation of out-of-line static calls for PowerPC 64-bit ELF V2 ABI.
Static calls patch an indirect branch into a direct branch at runtime.
Out-of-line specifically has a caller directly call a trampoline, and
the trampoline gets patched to directly call the target.
Previous versions here:
V3: https://lore.kernel.org/all/20221005053234.29312-1-bgray@linux.ibm.com/
V2: https://lore.kernel.org/all/20220926064316.765967-1-bgray@linux.ibm.com/
V1: https://lore.kernel.org/all/20220916062330.430468-1-bgray@linux.ibm.com/
RFC: https://lore.kernel.org/linuxppc-dev/20220901055823.152983-1-bgray@linux.ibm.com/
Still rebased on top of
https://lore.kernel.org/all/0df84a2eea551c1d000c34c36d0c1d23cbe26a97.1664289176.git.christophe.leroy@csgroup.eu/
Changed for V4:
[1/6]
* IS_ENABLED(CONFIG_PPC64) added to patch size condition for better
compiler optimisation
[2/6]
* Reworded message
* Refactored need r2 save expression. Parens are intentional, C operator
precedence can be difficult to remember, especially when three different
kinds are used in a single expression.
Benjamin Gray (6):
powerpc/code-patching: Implement generic text patching function
powerpc/module: Handle caller-saved TOC in module linker
powerpc/module: Optimise nearby branches in ELF V2 ABI stub
static_call: Move static call selftest to static_call_selftest.c
powerpc/64: Add support for out-of-line static calls
powerpc: Add tests for out-of-line static calls
arch/powerpc/Kconfig | 26 ++-
arch/powerpc/include/asm/code-patching.h | 30 +++
arch/powerpc/include/asm/static_call.h | 80 ++++++-
arch/powerpc/kernel/Makefile | 4 +-
arch/powerpc/kernel/module_64.c | 26 ++-
arch/powerpc/kernel/static_call.c | 183 +++++++++++++++-
arch/powerpc/kernel/static_call_test.c | 263 +++++++++++++++++++++++
arch/powerpc/kernel/static_call_test.h | 56 +++++
arch/powerpc/lib/code-patching.c | 73 +++++--
kernel/Makefile | 1 +
kernel/static_call_inline.c | 43 ----
kernel/static_call_selftest.c | 41 ++++
12 files changed, 753 insertions(+), 73 deletions(-)
create mode 100644 arch/powerpc/kernel/static_call_test.c
create mode 100644 arch/powerpc/kernel/static_call_test.h
create mode 100644 kernel/static_call_selftest.c
base-commit: 86de6882270620777fe9cc16ece97e9ee407122c
--
2.37.3
next reply other threads:[~2022-10-10 0:32 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-10 0:29 Benjamin Gray [this message]
2022-10-10 0:29 ` [PATCH v4 1/6] powerpc/code-patching: Implement generic text patching function Benjamin Gray
2022-10-10 4:45 ` Andrew Donnellan
2022-10-10 7:00 ` Andrew Donnellan
2022-10-10 0:29 ` [PATCH v4 2/6] powerpc/module: Handle caller-saved TOC in module linker Benjamin Gray
2022-10-25 2:10 ` Andrew Donnellan
2022-10-25 23:41 ` Benjamin Gray
2022-10-10 0:29 ` [PATCH v4 3/6] powerpc/module: Optimise nearby branches in ELF V2 ABI stub Benjamin Gray
2022-10-10 0:29 ` [PATCH v4 4/6] static_call: Move static call selftest to static_call_selftest.c Benjamin Gray
2022-10-10 0:29 ` [PATCH v4 5/6] powerpc/64: Add support for out-of-line static calls Benjamin Gray
2022-10-10 0:29 ` [PATCH v4 6/6] powerpc: Add tests " Benjamin Gray
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221010002957.128276-1-bgray@linux.ibm.com \
--to=bgray@linux.ibm.com \
--cc=ajd@linux.ibm.com \
--cc=ardb@kernel.org \
--cc=jbaron@akamai.com \
--cc=jpoimboe@kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=npiggin@gmail.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.