Re: [PATCH v5 00/18] Refcounted interrupt disable and SpinLockIrq for Rust
From: Peter Zijlstra
Date: Mon Aug 10 2026 - 06:54:32 EST
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@xxxxxxxxxxxxxx/.
>
> 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.