Re: [PATCH v5 00/18] Refcounted interrupt disable and SpinLockIrq for Rust

Peter Zijlstra <[email protected]>
Newsgroups org.kernel.vger.rust-for-linux,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Mon, Aug 10, 2026 at 11:38:17AM +0100, Gary Guo wrote:
> On Mon Aug 10, 2026 at 10:30 AM BST, Peter Zijlstra wrote:
> > On Mon, Aug 10, 2026 at 10:53:55AM +0200, Peter Zijlstra wrote:
> >> On Mon, Aug 10, 2026 at 10:52:55AM +0200, Peter Zijlstra wrote:
> >> > On Fri, Aug 07, 2026 at 12:01:57AM -0700, Boqun Feng wrote:
> >> > 
> >> > > * Added underflow/overflow checking for interrupt disabling counter as
> >> > >   suggested by Shrikanth.
> >> > > * Added a max nesting level per suggestion from Shrikanth.
> >> > > * Document/comment updates.
> >> > 
> >> > Can I get those as separate patches? I had already queued and tested the
> >> > previous version.
> >> > 
> >> > (although as it turns out, I lost one SoB fixup somehow, so I'm applying
> >> > them again with just that Changelog ammended)
> >> 
> >> I'll grab the rust patches from this set I suppose. I had not yet looked
> >> at those, since I don't normally build rust crud and I need to figure
> >> out how to do that again :-(
> >
> > So on tip/master + tip/locking/core (its fresh, so not in master yet).
> >
> > I have debian experimental rustc, which is build against clang-23, so I
> > do:
> >
> > $ make O=defconfig-build/ LLVM=-23 defconfig rust.config
> > $ make O=defconfig-build/ LLVM=-23 -j64
> >
> > and that gets me a wild amount of build fail :/
> >
> > error[E0560]: struct `blk_mq_tag_set` has no field named `ops`
> >   --> ../rust/kernel/block/mq/tag_set.rs:46:21
> >    |
> > 46 |                     ops: OperationsVTable::<T>::build(),
> >    |                     ^^^ `blk_mq_tag_set` does not have this field
> >    |
> >    = note: available fields are: `_address`
> >
> > error[E0560]: struct `blk_mq_tag_set` has no field named `nr_hw_queues`
> >   --> ../rust/kernel/block/mq/tag_set.rs:47:21
> >    |
> > 47 |                     nr_hw_queues,
> >    |                     ^^^^^^^^^^^^ `blk_mq_tag_set` does not have this field
> >    |
> >    = note: available fields are: `_address`
> >
> > ... this goes on for a fair while.
> 
> There was a change in clang 22 that breaks bindgen. You'd need the latest
> bindgen, see
> https://lore.kernel.org/rust-for-linux/CABwQupNfMAJOGqRM9ke6tj4f53dCCsBDKU7Vp+zf8mwk7bqt8Q@mail.gmail.com/.
> 
> If you're using debian unstable clang/rustc then you should also get bindgen
> from there too. Debian sid has the bindgen version that works with latest clang.

I 'upgraded' to bindgen/unstable, and found that Kbuild does not have a
dependency on the bindgen version so it didn't rebuild and insta
exploded with the same fails. A make clean fixed that.

Build seems happier now. Let me go apply these here locking patches.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.