From: David Laight <david.laight.linux@gmail.com>
To: Mark Rutland <mark.rutland@arm.com>
Cc: vladimir.murzin@arm.com, usama.anjum@arm.com,
peterz@infradead.org, catalin.marinas@arm.com,
ruanjinjie@huawei.com, stable@vger.kernel.org,
james.morse@arm.com, yang@os.amperecomputing.com, cl@gentwo.org,
maz@kernel.org, will@kernel.org, ardb@kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 16/21] arm64: percpu: Implement preemptible void RMW ops
Date: Tue, 8 Sep 2026 21:52:09 +0100 [thread overview]
Message-ID: <20260908215209.01f64b82@pumpkin> (raw)
In-Reply-To: <aqAkvK6zylxwq5J2@J2N7QTR9R3>
On Tue, 8 Sep 2026 16:07:40 +0100
Mark Rutland <mark.rutland@arm.com> wrote:
> On Sat, Sep 05, 2026 at 10:03:19AM +0100, David Laight wrote:
> > On Fri, 4 Sep 2026 17:17:53 +0100
> > Mark Rutland <mark.rutland@arm.com> wrote:
> >
> > > Use the PCPU GPR infrastructure to implement all of the RMW ops which do
> > > not return a value.
> > ...
> > > #define __PERCPU_OP_CASE(w, sfx, name, sz, op_llsc, op_lse) \
> >
> > Isn't this definition exactly the same as __PERCPU_RET_OP_CASE() except
> > for s/tmp/ret/ and the 'return ret'?
>
> Not exactly the same; the __PERCPU_RET_OP_CASE() assembly also performs
> an additional instruction at the end in order to generate the RETURN
> value.
I had missed that - it is only in the LSE atomics alternative.
However it also replaces a nop so wouldn't affect code size or
execution speed.
David
>
> > Since the compiler will just ignore the unwanted return value
> > there is not point replicating the definition.
>
> We could consider sharing the assembly, but it's not quite that simple,
> so I'm going to leave this as-is for now.
>
> Mark.
>
next prev parent reply other threads:[~2026-09-08 20:56 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-04 16:17 [PATCH v3 00/21] arm64: Preemptible this_cpu_*() operations Mark Rutland
2026-09-04 16:17 ` [PATCH v3 03/21] arm64: percpu: Fix LSE operations on {8,16}-bit types Mark Rutland
2026-09-07 8:48 ` Jinjie Ruan
2026-09-04 16:17 ` [PATCH v3 05/21] arm64: cmpxchg128: LSE: Remove redundant operands Mark Rutland
2026-09-04 16:17 ` [PATCH v3 07/21] arm64: preempt: Treat should_resched() as unlikely Mark Rutland
2026-09-04 16:17 ` [PATCH v3 08/21] arm64: ptrace: Always inline pt_regs_[read,write}_reg() Mark Rutland
2026-09-04 16:17 ` [PATCH v3 09/21] arm64: percpu: Factor out percpu offset asm Mark Rutland
2026-09-04 16:17 ` [PATCH v3 10/21] arm64: gpr-num: Add wxN aliases for wN registers Mark Rutland
2026-09-04 16:17 ` [PATCH v3 12/21] arm64: entry: sdei: Restore all clobberable GPRs Mark Rutland
2026-09-04 16:17 ` [PATCH v3 14/21] arm64: percpu: Add infrastructure for preemptible this_cpu_*() ops Mark Rutland
2026-09-04 16:17 ` [PATCH v3 15/21] arm64: percpu: Implement preemptible read/write ops Mark Rutland
2026-09-04 16:17 ` [PATCH v3 16/21] arm64: percpu: Implement preemptible void RMW ops Mark Rutland
2026-09-05 9:03 ` David Laight
2026-09-08 15:07 ` Mark Rutland
2026-09-08 20:52 ` David Laight [this message]
2026-09-04 16:17 ` [PATCH v3 17/21] arm64: percpu: Implement preemptible return " Mark Rutland
2026-09-04 16:17 ` [PATCH v3 18/21] arm64: percpu: Implement preemptible XCHG ops Mark Rutland
2026-09-04 16:17 ` [PATCH v3 19/21] arm64: percpu: Implement preemptible CMPXCHG ops Mark Rutland
2026-09-04 16:17 ` [PATCH v3 20/21] arm64: percpu: Implement preemptible CMPXCHG128 ops Mark Rutland
2026-09-04 16:17 ` [PATCH v3 21/21] arm64: percpu: Remove _pcp_protect*() wrappers Mark Rutland
2026-09-04 16:54 ` [PATCH v3 01/21] arm64: percpu: Fix this_cpu_write() casting Mark Rutland
2026-09-04 16:56 ` [PATCH v3 02/21] arm64: percpu: Fix this_cpu_and() mask generation Mark Rutland
2026-09-04 16:56 ` [PATCH v3 04/21] arm64: cmpxchg: LL/SC: Avoid redundant extension Mark Rutland
2026-09-04 16:57 ` [PATCH v3 06/21] arm64: preempt: Simplify and optimize __preempt_count_dec_and_test() Mark Rutland
2026-09-04 16:59 ` [PATCH v3 13/21] arm64: entry: sdei: Make 'tsk' available Mark Rutland
2026-09-04 17:43 ` [PATCH v3 00/21] arm64: Preemptible this_cpu_*() operations Mark Rutland
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=20260908215209.01f64b82@pumpkin \
--to=david.laight.linux@gmail.com \
--cc=ardb@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=cl@gentwo.org \
--cc=james.morse@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=peterz@infradead.org \
--cc=ruanjinjie@huawei.com \
--cc=stable@vger.kernel.org \
--cc=usama.anjum@arm.com \
--cc=vladimir.murzin@arm.com \
--cc=will@kernel.org \
--cc=yang@os.amperecomputing.com \
/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