Re: [PATCH v7 1/9] rust: Introduce atomic API helpers
Peter Zijlstra <[email protected]> Wed, 16 Jul 2025 14:47:13 +0200
| Newsgroups | dev.linux.lists.lkmm,org.kernel.vger.linux-arch,org.kernel.vger.linux-kernel,org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
On Wed, Jul 16, 2025 at 11:23:09AM +0200, Greg Kroah-Hartman wrote: > On Sun, Jul 13, 2025 at 10:36:48PM -0700, Boqun Feng wrote: > > In order to support LKMM atomics in Rust, add rust_helper_* for atomic > > APIs. These helpers ensure the implementation of LKMM atomics in Rust is > > the same as in C. This could save the maintenance burden of having two > > similar atomic implementations in asm. > > > > Originally-by: Mark Rutland <[email protected]> > > Reviewed-by: Alice Ryhl <[email protected]> > > Signed-off-by: Boqun Feng <[email protected]> > > --- > > rust/helpers/atomic.c | 1040 +++++++++++++++++++++ > > rust/helpers/helpers.c | 1 + > > scripts/atomic/gen-atomics.sh | 1 + > > scripts/atomic/gen-rust-atomic-helpers.sh | 67 ++ > > 4 files changed, 1109 insertions(+) > > create mode 100644 rust/helpers/atomic.c > > create mode 100755 scripts/atomic/gen-rust-atomic-helpers.sh > > > > diff --git a/rust/helpers/atomic.c b/rust/helpers/atomic.c > > new file mode 100644 > > index 000000000000..cf06b7ef9a1c > > --- /dev/null > > +++ b/rust/helpers/atomic.c > > @@ -0,0 +1,1040 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > + > > +// Generated by scripts/atomic/gen-rust-atomic-helpers.sh > > +// DO NOT MODIFY THIS FILE DIRECTLY > > As this is auto-generated, how do we know when to auto-generate it > again? What files does it depend on? And why can't we just > auto-generate it at build time instead of having a static file in the > tree that no one knows when to regenerate it? :) It depends on the scripts/atomic/* bits. They hardly if ever change. We do it this way because: - generating these files every build is 'slow'-ish; - code navigation suffers; - Linus asked for this. Specifically, pretty much the entire atomic_*() namespace would disappear from ctags / code-browsing-tool-of-choice if we would not check in these files.