From: Boqun Feng <boqun.feng@gmail.com>
To: FUJITA Tomonori <fujita.tomonori@gmail.com>
Cc: ojeda@kernel.org, peterz@infradead.org, will@kernel.org,
acourbot@nvidia.com, a.hindborg@kernel.org, aliceryhl@google.com,
bjorn3_gh@protonmail.com, dakr@kernel.org, gary@garyguo.net,
lossin@kernel.org, mark.rutland@arm.com, tmgross@umich.edu,
rust-for-linux@vger.kernel.org,
"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
Helge Deller <deller@gmx.de>,
linux-parisc@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>,
Andreas Larsson <andreas@gaisler.com>,
sparclinux@vger.kernel.org, Vineet Gupta <vgupta@kernel.org>,
linux-snps-arc@lists.infradead.org, Brian Cain <bcain@kernel.org>,
linux-hexagon@vger.kernel.org, linux-arch@vger.kernel.org
Subject: Re: [PATCH v1 0/4] rust: Add i8/i16 atomic xchg helpers
Date: Thu, 18 Dec 2025 18:18:17 +0900 [thread overview]
Message-ID: <aUPG2Q_sSPDnlQ0G@tardis-2.local> (raw)
In-Reply-To: <20251217213742.639812-1-fujita.tomonori@gmail.com>
[Cc parisc, sparc32, arc and hexagon]
On Thu, Dec 18, 2025 at 06:37:38AM +0900, FUJITA Tomonori wrote:
> This adds atomic xchg helpers with full, acquire, release, and relaxed
> orderings in preparation for i8/i16 atomic xchg support.
>
> The architectures supporting Rust, implement atomic xchg families
> using architecture-specific instructions. So the helpers just call
> them.
>
> Note that the architectures that support Rust handle xchg differently:
>
> - arm64 and riscv support xchg with all the orderings.
>
> - x86_64 and loongarch support only full-ordering xchg. They calls the
> full-ordering xchg for any orderings.
>
> - arm v7 supports only relaxed-odering xchg. It uses __atomic_op_
> macros to add barriers properly.
>
Thanks for the work! And please do Cc linux-arch next time when doing
architecture-related changes. We would get more experts to take a look.
I think the current implementation expects that xchg() work with normal
store/load, and that requires ARCH_SUPPORTS_ATOMIC_RMW. So could you add
a comment saying the current implementation only support
ARCH_SUPPORTS_ATOMIC_RMW architectures? And when you wire up the rust
helpers, I think using #[cfg(CONFIG_ARCH_SUPPORTS_ATOMIC_RMW)] is a good
idea. This will at least let the !ARCH_SUPPORTS_ATOMIC_RMW archs know
that something is missing here.
Regards,
Boqun
> FUJITA Tomonori (4):
> rust: helpers: Add i8/i16 atomic xchg helpers
> rust: helpers: Add i8/i16 atomic xchg_acquire helpers
> rust: helpers: Add i8/i16 atomic xchg_release helpers
> rust: helpers: Add i8/i16 atomic xchg_relaxed helpers
>
> rust/helpers/atomic_ext.c | 41 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 41 insertions(+)
>
>
> base-commit: 02c5c8c11bbd34cdd9c566dd4ecca48995c09621
> --
> 2.43.0
>
WARNING: multiple messages have this Message-ID (diff)
From: Boqun Feng <boqun.feng@gmail.com>
To: FUJITA Tomonori <fujita.tomonori@gmail.com>
Cc: ojeda@kernel.org, peterz@infradead.org, will@kernel.org,
acourbot@nvidia.com, a.hindborg@kernel.org, aliceryhl@google.com,
bjorn3_gh@protonmail.com, dakr@kernel.org, gary@garyguo.net,
lossin@kernel.org, mark.rutland@arm.com, tmgross@umich.edu,
rust-for-linux@vger.kernel.org,
"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
Helge Deller <deller@gmx.de>,
linux-parisc@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>,
Andreas Larsson <andreas@gaisler.com>,
sparclinux@vger.kernel.org, Vineet Gupta <vgupta@kernel.org>,
linux-snps-arc@lists.infradead.org, Brian Cain <bcain@kernel.org>,
linux-hexagon@vger.kernel.org, linux-arch@vger.kernel.org
Subject: Re: [PATCH v1 0/4] rust: Add i8/i16 atomic xchg helpers
Date: Thu, 18 Dec 2025 18:18:17 +0900 [thread overview]
Message-ID: <aUPG2Q_sSPDnlQ0G@tardis-2.local> (raw)
In-Reply-To: <20251217213742.639812-1-fujita.tomonori@gmail.com>
[Cc parisc, sparc32, arc and hexagon]
On Thu, Dec 18, 2025 at 06:37:38AM +0900, FUJITA Tomonori wrote:
> This adds atomic xchg helpers with full, acquire, release, and relaxed
> orderings in preparation for i8/i16 atomic xchg support.
>
> The architectures supporting Rust, implement atomic xchg families
> using architecture-specific instructions. So the helpers just call
> them.
>
> Note that the architectures that support Rust handle xchg differently:
>
> - arm64 and riscv support xchg with all the orderings.
>
> - x86_64 and loongarch support only full-ordering xchg. They calls the
> full-ordering xchg for any orderings.
>
> - arm v7 supports only relaxed-odering xchg. It uses __atomic_op_
> macros to add barriers properly.
>
Thanks for the work! And please do Cc linux-arch next time when doing
architecture-related changes. We would get more experts to take a look.
I think the current implementation expects that xchg() work with normal
store/load, and that requires ARCH_SUPPORTS_ATOMIC_RMW. So could you add
a comment saying the current implementation only support
ARCH_SUPPORTS_ATOMIC_RMW architectures? And when you wire up the rust
helpers, I think using #[cfg(CONFIG_ARCH_SUPPORTS_ATOMIC_RMW)] is a good
idea. This will at least let the !ARCH_SUPPORTS_ATOMIC_RMW archs know
that something is missing here.
Regards,
Boqun
> FUJITA Tomonori (4):
> rust: helpers: Add i8/i16 atomic xchg helpers
> rust: helpers: Add i8/i16 atomic xchg_acquire helpers
> rust: helpers: Add i8/i16 atomic xchg_release helpers
> rust: helpers: Add i8/i16 atomic xchg_relaxed helpers
>
> rust/helpers/atomic_ext.c | 41 +++++++++++++++++++++++++++++++++++++++
> 1 file changed, 41 insertions(+)
>
>
> base-commit: 02c5c8c11bbd34cdd9c566dd4ecca48995c09621
> --
> 2.43.0
>
_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc
next prev parent reply other threads:[~2025-12-18 9:18 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-17 21:37 [PATCH v1 0/4] rust: Add i8/i16 atomic xchg helpers FUJITA Tomonori
2025-12-17 21:37 ` [PATCH v1 1/4] rust: helpers: " FUJITA Tomonori
2025-12-17 21:37 ` [PATCH v1 2/4] rust: helpers: Add i8/i16 atomic xchg_acquire helpers FUJITA Tomonori
2025-12-17 21:37 ` [PATCH v1 3/4] rust: helpers: Add i8/i16 atomic xchg_release helpers FUJITA Tomonori
2025-12-17 21:37 ` [PATCH v1 4/4] rust: helpers: Add i8/i16 atomic xchg_relaxed helpers FUJITA Tomonori
2025-12-18 8:03 ` [PATCH v1 0/4] rust: Add i8/i16 atomic xchg helpers Alice Ryhl
2025-12-18 9:18 ` Boqun Feng [this message]
2025-12-18 9:18 ` Boqun Feng
2025-12-18 11:08 ` FUJITA Tomonori
2025-12-18 11:08 ` FUJITA Tomonori
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=aUPG2Q_sSPDnlQ0G@tardis-2.local \
--to=boqun.feng@gmail.com \
--cc=James.Bottomley@hansenpartnership.com \
--cc=a.hindborg@kernel.org \
--cc=acourbot@nvidia.com \
--cc=aliceryhl@google.com \
--cc=andreas@gaisler.com \
--cc=bcain@kernel.org \
--cc=bjorn3_gh@protonmail.com \
--cc=dakr@kernel.org \
--cc=davem@davemloft.net \
--cc=deller@gmx.de \
--cc=fujita.tomonori@gmail.com \
--cc=gary@garyguo.net \
--cc=linux-arch@vger.kernel.org \
--cc=linux-hexagon@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-snps-arc@lists.infradead.org \
--cc=lossin@kernel.org \
--cc=mark.rutland@arm.com \
--cc=ojeda@kernel.org \
--cc=peterz@infradead.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=sparclinux@vger.kernel.org \
--cc=tmgross@umich.edu \
--cc=vgupta@kernel.org \
--cc=will@kernel.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.