All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Danilo Krummrich" <dakr@kernel.org>
To: "Alice Ryhl" <aliceryhl@google.com>
Cc: "Daniel Almeida" <daniel.almeida@collabora.com>,
	"Boqun Feng" <boqun.feng@gmail.com>,
	"Miguel Ojeda" <ojeda@kernel.org>,
	"Alex Gaynor" <alex.gaynor@gmail.com>,
	"Gary Guo" <gary@garyguo.net>,
	"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
	"Andreas Hindborg" <a.hindborg@kernel.org>,
	"Trevor Gross" <tmgross@umich.edu>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Krzysztof Wilczy´nski" <kwilczynski@kernel.org>,
	"Benno Lossin" <lossin@kernel.org>,
	linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org,
	linux-pci@vger.kernel.org
Subject: Re: [PATCH v7 3/6] rust: irq: add support for non-threaded IRQs and handlers
Date: Wed, 23 Jul 2025 17:52:02 +0200	[thread overview]
Message-ID: <DBJJZL9MXYSJ.3S4JQ14MK6N3B@kernel.org> (raw)
In-Reply-To: <aIEDbB_FcgHgzfKd@google.com>

On Wed Jul 23, 2025 at 5:44 PM CEST, Alice Ryhl wrote:
> On Wed, Jul 23, 2025 at 05:03:12PM +0200, Danilo Krummrich wrote:
>> On Wed Jul 23, 2025 at 4:56 PM CEST, Daniel Almeida wrote:
>> >> On 23 Jul 2025, at 11:35, Danilo Krummrich <dakr@kernel.org> wrote:
>> >> On 7/23/25 4:26 PM, Boqun Feng wrote:
>> >>> On Wed, Jul 23, 2025 at 10:55:20AM -0300, Daniel Almeida wrote:
>> >>> But sure, this and the handler pinned initializer thing is not a blocker
>> >>> issue. However, I would like to see them resolved as soon as possible
>> >>> once merged.
>> >> 
>> >> I think it would be trivial to make the T an impl PinInit<T, E> and use a
>> >> completion as example instead of an atomic. So, we should do it right away.
>> >> 
>> >> - Danilo
>> >
>> >
>> > I agree that this is a trivial change to make. My point here is not to postpone
>> > the work; I am actually somewhat against switching to completions, as per the
>> > reasoning I provided in my latest reply to Boqun. My plan is to switch directly
>> > to whatever will substitute AtomicU32.
>> 
>> I mean, Boqun has a point. AFAIK, the Rust atomics are UB in the kernel.
>> 
>> So, this is a bit as if we would use spin_lock() instead of spin_lock_irq(),
>> it's just not correct. Hence, we may not want to showcase it until it's actually
>> resolved.
>> 
>> The plain truth is, currently there's no synchronization primitive for getting
>> interior mutability in interrupts.
>
> Is the actual argument here "we are getting rid of Rust atomics in the
> next cycle, so please don't introduce any more users during the next
> cycle because if you do it will take one cycle longer to get rid of
> all Rust atomics"?

That's an argument as well, I guess.

> I can accept that argument. But I don't accept the argument that we
> shouldn't use them here because of the UB technicality. That is an
> isolated demand for rigor and I think it is unreasonable. Using Rust
> atomics is an accepted workaround until the LKMM atomics land.

I think there's a difference between actually needing them and using them to
showcase something. Or in other words, limiting workarounds to only those places
where we can't avoid them seems like the correct thing to do.

Using a completion in the hard IRQ and showing a spinlock or mutex example in
the threaded handler seems like a good mix to me.

  reply	other threads:[~2025-07-23 15:52 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-15 15:16 [PATCH v7 0/6] rust: add support for request_irq Daniel Almeida
2025-07-15 15:16 ` [PATCH v7 1/6] rust: irq: add irq module Daniel Almeida
2025-07-15 15:16 ` [PATCH v7 2/6] rust: irq: add flags module Daniel Almeida
2025-07-16 14:20   ` Daniel Almeida
2025-07-16 14:45     ` Alice Ryhl
2025-07-15 15:16 ` [PATCH v7 3/6] rust: irq: add support for non-threaded IRQs and handlers Daniel Almeida
2025-07-16 23:45   ` kernel test robot
2025-07-17 16:20     ` Daniel Almeida
2025-07-21 14:17       ` Alice Ryhl
2025-07-21 14:45   ` Alice Ryhl
2025-07-21 15:10     ` Daniel Almeida
2025-07-21 15:28       ` Danilo Krummrich
2025-07-21 15:39         ` Daniel Almeida
2025-07-23  4:32   ` Boqun Feng
2025-07-23  4:57     ` Boqun Feng
2025-07-23  5:35     ` Alice Ryhl
2025-07-23 13:51       ` Boqun Feng
2025-07-23 13:55     ` Daniel Almeida
2025-07-23 14:26       ` Boqun Feng
2025-07-23 14:35         ` Danilo Krummrich
2025-07-23 14:56           ` Daniel Almeida
2025-07-23 15:03             ` Danilo Krummrich
2025-07-23 15:44               ` Alice Ryhl
2025-07-23 15:52                 ` Danilo Krummrich [this message]
2025-07-23 14:54         ` Daniel Almeida
2025-07-23 15:50           ` Boqun Feng
2025-07-23 16:07             ` Daniel Almeida
2025-07-23 16:11               ` Danilo Krummrich
2025-07-23 16:18                 ` Daniel Almeida
2025-07-23 21:31                   ` Danilo Krummrich
2025-07-15 15:16 ` [PATCH v7 4/6] rust: irq: add support for threaded " Daniel Almeida
2025-07-21 14:48   ` Alice Ryhl
2025-07-15 15:16 ` [PATCH v7 5/6] rust: platform: add irq accessors Daniel Almeida
2025-07-15 15:16 ` [PATCH v7 6/6] rust: pci: " Daniel Almeida
2025-07-15 15:32 ` [PATCH v7 0/6] rust: add support for request_irq Danilo Krummrich
2025-07-22 11:41 ` Dirk Behme
2025-07-22 14:52 ` Joel Fernandes

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=DBJJZL9MXYSJ.3S4JQ14MK6N3B@kernel.org \
    --to=dakr@kernel.org \
    --cc=a.hindborg@kernel.org \
    --cc=alex.gaynor@gmail.com \
    --cc=aliceryhl@google.com \
    --cc=bhelgaas@google.com \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun.feng@gmail.com \
    --cc=daniel.almeida@collabora.com \
    --cc=gary@garyguo.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=kwilczynski@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lossin@kernel.org \
    --cc=ojeda@kernel.org \
    --cc=rafael@kernel.org \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --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 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.