Thread (43 messages) flat view 43 messages, 5 authors, 1d ago

Re: (subset) [PATCH v4 00/21] Preemptible this_cpu_*() operations

From: Catalin Marinas <catalin.marinas@arm.com>
Date: 2026-09-24 16:16:36
Also in: stable

On Tue, 08 Sep 2026 16:17:20 +0100, Mark Rutland wrote:
This series reworks arm64's this_cpu_*() operations such that they do
not need to disable preemption. The scheme is described in detail in patch 13,
and is similar to the approach Heiko Carstens applied to s390 [1], which
inspired this series.

This scheme should build and function in all kernel configurations (e.g.
regardless of KPTI, SW PAN, CNP, VA BITS), and has no dependency on new
architectural features. The fixup logic should "just work" with kprobes,
etc, and I don't expect that this will need to become more complicated.

[...]
Applied to arm64 (for-next/preemptible-this-cpu), thanks!

Patches 1-3 are already upstream as fixes (in -rc4, used as a base for
for-next/core). I fixed some minor comment typos in a couple of patches,
I haven't touched the code.

On v2, Usama reported performance regression in perf/sched and
perf/futex benchmarks that have not been addressed yet. It would be good
to run the tests again on this version, in case they were just noise. I
don't see why these would regress, maybe because of pt_regs being larger
and we get some more cache misses?

[04/21] arm64: cmpxchg: LL/SC: Avoid redundant extension
        https://git.kernel.org/arm64/c/78746ba584fc
[05/21] arm64: cmpxchg128: LSE: Remove redundant operands
        https://git.kernel.org/arm64/c/de2824489899
[06/21] arm64: preempt: Simplify and optimize __preempt_count_dec_and_test()
        https://git.kernel.org/arm64/c/1bee18253c2e
[07/21] arm64: preempt: Treat should_resched() as unlikely
        https://git.kernel.org/arm64/c/6254b223153d
[08/21] arm64: ptrace: Always inline pt_regs_[read,write}_reg()
        (no commit info)
[09/21] arm64: percpu: Factor out percpu offset asm
        https://git.kernel.org/arm64/c/b7f3aa93f407
[10/21] arm64: gpr-num: Add wxN aliases for wN registers
        https://git.kernel.org/arm64/c/47c62b09f03b
[11/21] arm64: gpr-num: add __GPR_NUM() helper
        https://git.kernel.org/arm64/c/05c44981d9ec
[12/21] arm64: entry: sdei: Restore all clobberable GPRs
        https://git.kernel.org/arm64/c/1e0a5cc90aab
[13/21] arm64: entry: sdei: Make 'tsk' available
        https://git.kernel.org/arm64/c/fb532fdb4430
[14/21] arm64: percpu: Add infrastructure for preemptible this_cpu_*() ops
        https://git.kernel.org/arm64/c/95d2c5f6663b
[15/21] arm64: percpu: Implement preemptible read/write ops
        https://git.kernel.org/arm64/c/6e2cec1c39b2
[16/21] arm64: percpu: Implement preemptible void RMW ops
        https://git.kernel.org/arm64/c/c7ac8f9baaef
[17/21] arm64: percpu: Implement preemptible return RMW ops
        https://git.kernel.org/arm64/c/6fe3da372d04
[18/21] arm64: percpu: Implement preemptible XCHG ops
        https://git.kernel.org/arm64/c/5e8ef5fb7720
[19/21] arm64: percpu: Implement preemptible CMPXCHG ops
        https://git.kernel.org/arm64/c/39d50a10e318
[20/21] arm64: percpu: Implement preemptible CMPXCHG128 ops
        https://git.kernel.org/arm64/c/c0ff52c3683c
[21/21] arm64: percpu: Remove _pcp_protect*() wrappers
        https://git.kernel.org/arm64/c/479671f943c9
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help