Re: [PATCH v8 16/29] rust: alloc: implement kernel `Vec` type

From: Benno Lossin
Date: Wed Oct 02 2024 - 15:05:00 EST


On 02.10.24 17:20, Danilo Krummrich wrote:
> On Wed, Oct 02, 2024 at 03:02:18PM +0000, Benno Lossin wrote:
>> On 01.10.24 16:59, Danilo Krummrich wrote:
>>> `Vec` provides a contiguous growable array type with contents allocated
>>> with the kernel's allocators (e.g. `Kmalloc`, `Vmalloc` or `KVmalloc`).
>>>
>>> In contrast to Rust's stdlib `Vec` type, the kernel `Vec` type considers
>>> the kernel's GFP flags for all appropriate functions, always reports
>>> allocation failures through `Result<_, AllocError>` and remains
>>> independent from unstable features.
>>>
>>> Signed-off-by: Danilo Krummrich <dakr@xxxxxxxxxx>
>>> ---
>>> rust/kernel/alloc.rs | 6 +
>>> rust/kernel/alloc/kvec.rs | 637 ++++++++++++++++++++++++++++++++++++++
>>
>> Any reason against naming this `vec.rs`?
>
> I think I didn't rename kvec.rs and kbox.rs because we'd need to escape "box" in
> various places, e.g. in rust/kernel/alloc.rs:
>
> ```
> pub mod r#box;
>
> pub use self::r#box::Box;
> pub use self::r#box::KBox;
> pub use self::r#box::VBox;
> pub use self::r#box::KVBox;
> ```

Yeah, that's why `std` uses `boxed.rs`.

> And it's a kernel specific implementation, so kbox.rs and kvec.rs still makes
> sense. :)

Fair.

---
Cheers,
Benno