[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1277cefd-b080-42a5-bfe5-57296e7ccc3e@paulmck-laptop>
Date: Wed, 12 Mar 2025 11:00:48 -0700
From: "Paul E. McKenney" <paulmck@...nel.org>
To: Linus Walleij <linus.walleij@...aro.org>
Cc: Russell King <rmk+kernel@...linux.org.uk>,
Linux ARM <linux-arm-kernel@...ts.infradead.org>,
Arnd Bergmann <arnd@...db.de>, Thomas Gleixner <tglx@...utronix.de>,
linux-kernel <linux-kernel@...r.kernel.org>, frederic@...nel.org
Subject: Re: [GIT PULL] Generic entry for ARM
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@...aro.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@...nel.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
Powered by blists - more mailing lists