From: "Paul E. McKenney" <paulmck@kernel.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Russell King <rmk+kernel@armlinux.org.uk>,
Linux ARM <linux-arm-kernel@lists.infradead.org>,
Arnd Bergmann <arnd@arndb.de>,
Thomas Gleixner <tglx@linutronix.de>,
linux-kernel <linux-kernel@vger.kernel.org>,
frederic@kernel.org
Subject: Re: [GIT PULL] Generic entry for ARM
Date: Wed, 12 Mar 2025 11:00:48 -0700 [thread overview]
Message-ID: <1277cefd-b080-42a5-bfe5-57296e7ccc3e@paulmck-laptop> (raw)
In-Reply-To: <CACRpkdZCiiMTwf7eGJJ9aCKFOC3_xTGv1JKQUijjyp+_++cZ_A@mail.gmail.com>
On Fri, Feb 28, 2025 at 01:49:36PM +0100, Linus Walleij wrote:
> Hi Russell,
>
> please consider pulling the following git branch for generic entry,
> see below.
>
> This branch was just harvested from my own v5 patch series on
> lore with b4 am -t 20250225-arm-generic-entry-v5-0-2f02313653e5@linaro.org
> then git am on top of v6.14-rc1, so you can do the same if you
> prefer.
>
> It's possible to squash patches, even all of them into one
> big all-or-nothing patch, given the not very gradual nature generic
> entry conversion seems to have.
>
> Main upsides and downsides are in the signed tag.
>
> I don't know who the most important stakeholders are, but I guess
> the context tracker maintainer (Paul McKenney) and the people working
> on generic entry (tglx) could have a say on how important this is, or isn't.
>
> I think it's pretty neat.
No argument here!
Once you are confident that you have all the needed "noinstr"
and "__always_inline" instances in place, could you please add
ARCH_WANTS_NO_INSTR to the list of "select" clauses for "config ARM"
in arch/arm/Kconfig?
Once all architectures that support trampoline-based tracing also select
ARCH_WANTS_NO_INSTR we can drop RCU Tasks Rude. ;-)
In the meantime, for the series:
Acked-by: Paul E. McKenney <paulmck@kernel.org>
Thanx, Paul
> Yours,
> Linus Walleij
>
> The following changes since commit 2014c95afecee3e76ca4a56956a936e23283f05b:
>
> Linux 6.14-rc1 (2025-02-02 15:39:26 -0800)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator.git
> tags/arm-generic-entry-for-v6.15
>
> for you to fetch changes up to 98b8e133458a3feefdf882ea16fb7f1f576a49e5:
>
> ARM: entry: Reimplement local restart in C (2025-02-28 13:40:44 +0100)
>
> ----------------------------------------------------------------
> Main upsides:
>
> - Using the same common entry as used by x86_64, RISCV, S390
> and Loongarch, probably soon also ARM64.
>
> - Moves ARM away from the obsoleted context tracker entry points
> user_enter_callable() and user_exit_callable() are now only used
> by ARM, CSKY and Xtensa.
>
> - Solves a few lockdep warnings in the process.
>
> - Converts a bit of assembly into C.
>
> Main downside:
>
> - Slightly increased system call overhead, around 6% in
> measurements.
>
> ----------------------------------------------------------------
> Linus Walleij (31):
> ARM: Prepare includes for generic entry
> ARM: ptrace: Split report_syscall()
> ARM: entry: Skip ret_slow_syscall label
> ARM: process: Rewrite ret_from_fork i C
> ARM: process: Remove local restart
> ARM: entry: Invoke syscalls using C
> ARM: entry: Rewrite two asm calls in C
> ARM: entry: Move trace entry to C function
> ARM: entry: save the syscall sp in thread_info
> ARM: entry: move all tracing invocation to C
> ARM: entry: Merge the common and trace entry code
> ARM: entry: Rename syscall invocation
> ARM: entry: Create user_mode_enter/exit
> ARM: entry: Drop trace argument from usr_entry macro
> ARM: entry: Separate call path for syscall SWI entry
> ARM: entry: Drop argument to asm_irqentry macros
> ARM: entry: Implement syscall_exit_to_user_mode()
> ARM: entry: Drop the superfast ret_fast_syscall
> ARM: entry: Remove fast and offset register restore
> ARM: entry: Untangle ret_fast_syscall/to_user
> ARM: entry: Do not double-call exit functions
> ARM: entry: Move work processing to C
> ARM: entry: Stop exiting syscalls like IRQs
> ARM: entry: Complete syscall and IRQ transition to C
> ARM: entry: Create irqentry calls from kernel mode
> ARM: entry: Move in-kernel hardirq tracing to C
> ARM: irq: Add irqstack helper
> ARM: entry: Convert to generic entry
> ARM: entry: Handle dabt, pabt, and und as interrupts
> ARM: entry: Block IRQs in early IRQ context
> ARM: entry: Reimplement local restart in C
>
> arch/arm/Kconfig | 1 +
> arch/arm/include/asm/entry-common.h | 66 ++++++++++++
> arch/arm/include/asm/entry.h | 14 +++
> arch/arm/include/asm/ptrace.h | 8 +-
> arch/arm/include/asm/signal.h | 4 -
> arch/arm/include/asm/stacktrace.h | 2 +-
> arch/arm/include/asm/switch_to.h | 4 +
> arch/arm/include/asm/syscall.h | 7 ++
> arch/arm/include/asm/thread_info.h | 22 ++--
> arch/arm/include/asm/traps.h | 5 +-
> arch/arm/include/uapi/asm/ptrace.h | 2 +
> arch/arm/kernel/Makefile | 5 +-
> arch/arm/kernel/asm-offsets.c | 1 +
> arch/arm/kernel/entry-armv.S | 82 ++++-----------
> arch/arm/kernel/entry-common.S | 198 +++++++++++++-----------------------
> arch/arm/kernel/entry-header.S | 100 ++----------------
> arch/arm/kernel/entry.c | 120 ++++++++++++++++++++++
> arch/arm/kernel/irq.c | 6 ++
> arch/arm/kernel/irq.h | 2 +
> arch/arm/kernel/process.c | 25 ++++-
> arch/arm/kernel/ptrace.c | 81 +--------------
> arch/arm/kernel/signal.c | 68 +++----------
> arch/arm/kernel/syscall.c | 59 +++++++++++
> arch/arm/kernel/traps.c | 30 +-----
> arch/arm/mm/abort-ev4.S | 2 +-
> arch/arm/mm/abort-ev4t.S | 2 +-
> arch/arm/mm/abort-ev5t.S | 4 +-
> arch/arm/mm/abort-ev5tj.S | 6 +-
> arch/arm/mm/abort-ev6.S | 2 +-
> arch/arm/mm/abort-ev7.S | 2 +-
> arch/arm/mm/abort-lv4t.S | 36 +++----
> arch/arm/mm/abort-macro.S | 2 +-
> arch/arm/mm/abort-nommu.S | 2 +-
> arch/arm/mm/fault.c | 4 +-
> arch/arm/mm/fault.h | 8 +-
> arch/arm/mm/pabort-legacy.S | 2 +-
> arch/arm/mm/pabort-v6.S | 2 +-
> arch/arm/mm/pabort-v7.S | 2 +-
> 38 files changed, 484 insertions(+), 504 deletions(-)
> create mode 100644 arch/arm/include/asm/entry-common.h
> create mode 100644 arch/arm/include/asm/entry.h
> create mode 100644 arch/arm/kernel/entry.c
> create mode 100644 arch/arm/kernel/irq.h
> create mode 100644 arch/arm/kernel/syscall.c
next prev parent reply other threads:[~2025-03-12 18:04 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-28 12:49 [GIT PULL] Generic entry for ARM Linus Walleij
2025-03-12 11:13 ` Thomas Gleixner
2025-03-12 18:00 ` Paul E. McKenney [this message]
2025-03-31 21:48 ` Linus Walleij
2025-04-07 17:00 ` Paul E. McKenney
2025-04-07 23:47 ` Josh Poimboeuf
2025-04-08 0:14 ` Steven Rostedt
2025-04-09 14:54 ` Peter Zijlstra
-- strict thread matches above, loose matches on Subject: below --
2025-03-02 15:23 phil995511
2025-03-02 17:17 ` Russell King (Oracle)
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=1277cefd-b080-42a5-bfe5-57296e7ccc3e@paulmck-laptop \
--to=paulmck@kernel.org \
--cc=arnd@arndb.de \
--cc=frederic@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rmk+kernel@armlinux.org.uk \
--cc=tglx@linutronix.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox