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.