[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aSClxW6jnspFRHMH@tardis.local>
Date: Fri, 21 Nov 2025 09:47:49 -0800
From: Boqun Feng <boqun.feng@...il.com>
To: John Hubbard <jhubbard@...dia.com>
Cc: Lyude Paul <lyude@...hat.com>, rust-for-linux@...r.kernel.org,
linux-kernel@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>,
Daniel Almeida <daniel.almeida@...labora.com>,
Miguel Ojeda <ojeda@...nel.org>,
Alex Gaynor <alex.gaynor@...il.com>, Gary Guo <gary@...yguo.net>,
Björn Roy Baron <bjorn3_gh@...tonmail.com>,
Benno Lossin <lossin@...nel.org>,
Andreas Hindborg <a.hindborg@...nel.org>,
Alice Ryhl <aliceryhl@...gle.com>, Trevor Gross <tmgross@...ch.edu>,
Danilo Krummrich <dakr@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>, Will Deacon <will@...nel.org>,
Waiman Long <longman@...hat.com>
Subject: Re: [PATCH v14 00/16] Refcounted interrupts, SpinLockIrq for rust
On Thu, Nov 20, 2025 at 03:16:04PM -0800, John Hubbard wrote:
> On 11/20/25 1:45 PM, Lyude Paul wrote:
> ...
> > this new interface is indeed possible, more on this below.
> > * Also thank to Joel, we also now have actual benchmarks for how this
> > affects performance:
> > https://lore.kernel.org/rust-for-linux/20250619175335.2905836-1-joelagnelf@nvidia.com/
> > * Also some small changes to the kunit test I added, mainly just making
> > sure I don't forget to include a MODULE_DESCRIPTION or MODULE_LICENSE.
>
> Hi,
>
> The above link says that local_interrupt takes 3.6x as as as local_irq.
>
> This is alarming, but is it the final word? In other words, is the Rust
> side of this doomed to slower performance forever, or is there some
> hope of reaching performance parity with the C part of the kernel?
>
Note that local_interrupt API is for safe Rust code, you can always
use unsafe local_irq if the interrupt disabling is the performance
bottleneck for you. So language-wise there is no difference between Rust
and C.
> Do we have to start telling the Rust for Linux story this way: "our
> new Rust-based drivers are slower, but memory-safer"?
>
I would not jump into that conclusion at the moment, because 1) as I
mentioned you can always go into unsafe if something begins the
bottleneck, and 2) there is always a gap between micro benchmark results
and the whole system performance, being slow on one operation doesn't
means the whole system will perform observably worse.
Think about a similar thing in C, we recommend people to use existing
locks instead of customized synchronization vi atomics in most cases,
and technically, locks can be slower compared to a special
synchronization based on atomics, but it's more difficult to mess up.
Regards,
Boqun
> I'm not able to deduce the answer from a quick scan through the patches
> and the cover letter.
>
> thanks,
> --
> John Hubbard
>
Powered by blists - more mailing lists