From: Andreas Hindborg <a.hindborg@kernel.org>
To: FUJITA Tomonori <fujita.tomonori@gmail.com>, ojeda@kernel.org
Cc: aliceryhl@google.com, bjorn3_gh@protonmail.com,
boqun.feng@gmail.com, dakr@kernel.org, gary@garyguo.net,
lossin@kernel.org, rust-for-linux@vger.kernel.org,
tmgross@umich.edu
Subject: Re: [PATCH v1 0/2] Add support for print exactly once
Date: Wed, 05 Nov 2025 21:59:06 +0100 [thread overview]
Message-ID: <87pl9w6vs5.fsf@t14s.mail-host-address-is-not-set> (raw)
In-Reply-To: <20251105054731.3194118-1-fujita.tomonori@gmail.com>
"FUJITA Tomonori" <fujita.tomonori@gmail.com> writes:
> This adds the Rust equivalent of the kernel's DO_ONCE_LITE and
> pr_*_once macros.
>
> A proposal for this feature was made in the past [1], but it didn't
> reach consensus on the implementation and wasn't merged. After reading
> the previous discussions, I implemented it using a different approach.
>
> In the previous proposal, a structure equivalent to std::sync::Once
> was implemented to realize the DO_ONCE_LITE macro. The approach tried
> to provide Once-like semantics by using two atomic values. As pointed
> out in the previous review comments, I think this approach tries to
> provide more functionality than needed, making it unnecessarily
> complex. Also, because data structures in the .data..once section can
> be cleared at any time (via debugfs clear_warn_once), an
> implementation using two atomics wouldn't work correctly.
>
> Therefore, I decided to drop the idea of emulating Once and took a
> minimal approach to implement DO_ONCE_LITE with only one atomic
> variable. While it would be possible to implement the feature entirely
> as a Rust macro, the functionality that can be implemented as regular
> functions has been extracted and implemented as the OnceLite struct
> for better code readability.
>
> Of course, unlike the previous proposal, this uses LKMM atomics.
Please consider if it makes sense to base this on `SetOnce`. It is in
linux-next now, but was on list here [1].
Best regards,
Andreas Hindborg
[1] https://lore.kernel.org/r/20250924-module-params-v3-v18-1-bf512c35d910@kernel.org
next prev parent reply other threads:[~2025-11-05 20:59 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <nsSZZk6z9Ia7Gl5JS9LVNDRjc-9eFvtSWyLI4SSjsHNouDkDV-GmXnixMYlIpGHryPfhLr8Z2W_CkWd6D2frYQ==@protonmail.internalid>
2025-11-05 5:47 ` [PATCH v1 0/2] Add support for print exactly once FUJITA Tomonori
2025-11-05 5:47 ` [PATCH v1 1/2] rust: Add support for calling a function " FUJITA Tomonori
2025-11-05 9:21 ` Onur Özkan
2025-11-05 10:35 ` Alice Ryhl
2025-11-05 10:32 ` Alice Ryhl
2025-11-06 0:34 ` FUJITA Tomonori
2025-11-05 16:19 ` Boqun Feng
2025-11-06 0:10 ` FUJITA Tomonori
2025-11-06 14:46 ` Boqun Feng
2025-11-07 9:03 ` Alice Ryhl
2025-11-10 9:21 ` FUJITA Tomonori
2025-11-10 16:14 ` Boqun Feng
2025-11-10 16:37 ` Miguel Ojeda
2025-11-10 16:55 ` Boqun Feng
2025-11-11 21:42 ` Miguel Ojeda
2025-11-11 3:09 ` FUJITA Tomonori
2025-11-11 5:17 ` Boqun Feng
2025-11-11 9:12 ` Andreas Hindborg
2025-11-11 23:38 ` FUJITA Tomonori
2025-11-12 9:04 ` Andreas Hindborg
2025-11-15 13:37 ` FUJITA Tomonori
2025-11-11 21:43 ` FUJITA Tomonori
2025-11-12 1:30 ` Boqun Feng
2025-11-12 2:23 ` Boqun Feng
2025-11-12 9:10 ` Andreas Hindborg
2025-11-14 15:03 ` Boqun Feng
2025-11-12 13:17 ` FUJITA Tomonori
2025-11-05 5:47 ` [PATCH v1 2/2] rust: Add pr_*_once macros FUJITA Tomonori
2025-11-05 10:33 ` Alice Ryhl
2025-11-05 20:59 ` Andreas Hindborg [this message]
2025-11-05 23:12 ` [PATCH v1 0/2] Add support for print exactly once FUJITA Tomonori
2025-11-06 14:31 ` Boqun Feng
2025-11-10 12:16 ` Andreas Hindborg
2025-11-10 16:08 ` Boqun Feng
2025-11-11 9:02 ` Andreas Hindborg
2025-11-12 0:45 ` FUJITA Tomonori
2025-11-12 1:04 ` Boqun Feng
2025-11-12 1:18 ` FUJITA Tomonori
2025-11-12 1:35 ` Boqun Feng
2025-11-13 9:55 ` FUJITA Tomonori
2025-11-11 1:28 ` FUJITA Tomonori
2025-11-13 10:07 ` Alice Ryhl
2025-11-13 11:18 ` FUJITA Tomonori
2025-11-13 12:06 ` Alice Ryhl
2025-11-14 0:47 ` FUJITA Tomonori
2025-11-14 0:57 ` Boqun Feng
2025-11-14 1:12 ` FUJITA Tomonori
2025-11-14 1:19 ` Boqun Feng
2025-11-14 9:48 ` Alice Ryhl
2025-11-14 13:55 ` FUJITA Tomonori
2025-11-14 13:47 ` FUJITA Tomonori
2025-11-13 15:20 ` Boqun Feng
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=87pl9w6vs5.fsf@t14s.mail-host-address-is-not-set \
--to=a.hindborg@kernel.org \
--cc=aliceryhl@google.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=dakr@kernel.org \
--cc=fujita.tomonori@gmail.com \
--cc=gary@garyguo.net \
--cc=lossin@kernel.org \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tmgross@umich.edu \
/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