Re: [PATCH v7 10/26] rust: treewide: switch to our kernel `Box` type

Danilo Krummrich
2024-09-29T14:52:29Z

On Sat, Sep 28, 2024 at 07:59:13PM +0100, Gary Guo wrote:
> On Thu, 12 Sep 2024 00:52:46 +0200
> Danilo Krummrich <dakr@kernel.org> wrote:
>
> > Now that we got the kernel `Box` type in place, convert all existing
> > `Box` users to make use of it.
> >
> > Reviewed-by: Alice Ryhl <aliceryhl@google.com>
> > Reviewed-by: Benno Lossin <benno.lossin@proton.me>
> > Signed-off-by: Danilo Krummrich <dakr@kernel.org>
>
> Reviewed-by: Gary Guo <gary@garyguo.net>
>
> Have you considered defaulting the `A` in `Box` to `Kmalloc`? This
> would avoid doing a lot of tree-wide changes.
>
> If you have a reason against it (I'm pretty sure you have), then
> probably you should put it in the commit message.

Yes, I want people to be forced to make an explicit decision about the allocator
backend they choose, because this has relevant implications.

For instance, it's likely to be unexpected to people coming from userspace Rust,
that (with the default of `Kmalloc`) `Box` allocations larger than
`KMALLOC_MAX_SIZE` would just fail.

>
> Best,
> Gary
>
> > ---
> > drivers/block/rnull.rs | 4 +--
> > rust/kernel/init.rs | 51 ++++++++++++++++---------------
> > rust/kernel/init/__internal.rs | 2 +-
> > rust/kernel/rbtree.rs | 49 ++++++++++++++++-------------
> > rust/kernel/sync/arc.rs | 17 +++++------
> > rust/kernel/sync/condvar.rs | 4 +--
> > rust/kernel/sync/lock/mutex.rs | 2 +-
> > rust/kernel/sync/lock/spinlock.rs | 2 +-
> > rust/kernel/workqueue.rs | 20 ++++++------
> > rust/macros/lib.rs | 6 ++--
> > 10 files changed, 81 insertions(+), 76 deletions(-)
>