Re: [PATCH v3 00/10] Allocation APIs

From: Miguel Ojeda
Date: Tue Apr 16 2024 - 17:04:48 EST


On Thu, Mar 28, 2024 at 2:36 AM Wedson Almeida Filho <wedsonaf@xxxxxxxxx> wrote:
>
> From: Wedson Almeida Filho <walmeida@xxxxxxxxxxxxx>
>
> Revamp how we use the `alloc` crate.
>
> We currently have a fork of the crate with changes to `Vec`; other
> changes have been upstreamed (to the Rust project). This series removes
> the fork and exposes all the functionality as extension traits.
>
> Additionally, it also introduces allocation flag parameters to all
> functions that may result in allocations (e.g., `Box::new`, `Arc::new`,
> `Vec::push`, etc.) without the `try_` prefix -- the names are available
> because we build `alloc` with `no_global_oom_handling`.
>
> Lastly, the series also removes our reliance on the `allocator_api`
> unstable feature.
>
> Long term, we still want to make such functionality available in
> upstream Rust, but this allows us to make progress now and reduces our
> maintainance burden.
>
> In summary:
> 1. Removes `alloc` fork
> 2. Removes use of `allocator_api` unstable feature
> 3. Introduces flags (e.g., GFP_KERNEL, GFP_ATOMIC) when allocating

Applied to `rust-next` -- thanks everyone!

[ Used `Box::write()` to avoid one `unsafe` block as suggested by Boqun ]

Cheers,
Miguel