"Gary Guo" <gary@xxxxxxxxxxx> writes: > On Fri, 04 Oct 2024 20:05:41 +0200 > Andreas Hindborg <a.hindborg@xxxxxxxxxx> wrote: > >> Hi Gary, >> >> "Gary Guo" <gary@xxxxxxxxxxx> writes: >> >> > Currently there's a custom reference counting in `block::mq`, which uses >> > `AtomicU64` Rust atomics, and this type doesn't exist on some 32-bit >> > architectures. We cannot just change it to use 32-bit atomics, because >> > doing so will make it vulnerable to refcount overflow. So switch it to >> > use the kernel refcount `kernel::sync::Refcount` instead. >> > >> > There is an operation needed by `block::mq`, atomically decreasing >> > refcount from 2 to 0, which is not available through refcount.h, so >> > I exposed `Refcount::as_atomic` which allows accessing the refcount >> > directly. >> >> I would rather wait with this patch until the helper LTO patches land >> upstream. Or at least let me run the benchmarks to see the effect of not >> inlining these refcount operations. >> >> Best regards, >> Andreas >> > > The helper LTO patch series still need some time. I'd want to be able to > test on 32-bit archs in the meantime. In that case I would rather just conditionally gate the `block` module and the `rnull` driver on 64 bit arch. BR Andreas