Re: [PATCH] rust: bitmap: encourage using xarray/maple_tree instead of id_pool
Burak Emir <[email protected]>
| Newsgroups | org.kernel.vger.rust-for-linux,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <CABwQupMxu+7J=NnbwaWoKQjxhU-gO53DHsvZh=g0NxpJyQnTrw@mail.gmail.com> |
On Tue, Jul 21, 2026 at 12:08 PM Miguel Ojeda <[email protected]> wrote: > > On Sun, Jul 19, 2026 at 4:24 PM Yury Norov <[email protected]> wrote: > > > > ID pool is a user of bitmaps, not a part of it. If we move every > > random user to the bitmap directory, that would be an immediate > > maintenance burden on you, Burak and me. Not sure I'm a fan of > > this idea. > > Splitting things into more independent modules is usually fine, yeah. > I don't see why we would need a `lib/`, though. My read of Yury's comment is that this proposes to organize Rust files using C include file conventions. @Yury, the Rust compiler expects files and directories to follow the module structure. Module structure governs how stuff is accessed in source (kind of like c++ namespaces, but done right), crates act as top-level modules. If you create a lib directory, you would have to have a lib module. Everyone would have to mention lib when importing types and functions from there, which seems redundant. My thoughts: - there seems to be precedent for nesting modules under kernel. - agree that ID pool is a user (depends on) bitmap, but it is not a random user. We do not want every user of bitmap to go into the bitmap module, but apparently there is more than use-case for the abstraction. - even if ID pool depends on bitmap, nothing prevents us from putting it into bitmap module as a nested module. Everything is part of the kernel crate and built together anyways. - The idea of this series is to make clear that using ID pool is a commitment to bitmap. This addresses the recurring discussion "why isn't this IDR/IDA/xarray/maple tree etc". > Hmm... If what we want is to avoid having `id_pool` as part of > `bitmap`, then can we add the documentation paragraph added here > instead? Added where? You mean not moving it under bitmap but just adding documentation to IdPool in its current place? I don't have a strong opinion on module structure. I just think it is easy to miss documentation, and it could convey that this ID pool is intentionally strongly coupled with bitmap. Cheers, Burak