Re: [PATCH v12 3/4] rust: add support for NUMA ids in allocations

Danilo Krummrich
2025-07-09T20:58:26Z

On Wed, Jul 09, 2025 at 07:24:58PM +0200, Vitaly Wool wrote:
> Add a new type to support specifying NUMA identifiers in Rust
> allocators and extend the allocators to have NUMA id as a
> parameter. Thus, modify ReallocFunc to use the new extended realloc
> primitives from the C side of the kernel (i. e.
> k[v]realloc_node_align/vrealloc_node_align) and add the new function
> alloc_node to the Allocator trait while keeping the existing one
> (alloc) for backward compatibility.
>
> This will allow to specify node to use for allocation of e. g.
> {KV}Box, as well as for future NUMA aware users of the API.
>
> Signed-off-by: Vitaly Wool <vitaly.wool@konsulko.se>

> +/// Non Uniform Memory Access (NUMA) node identifier

Please end with a period.

> +#[derive(Clone, Copy, PartialEq)]
> +pub struct NumaNode(i32);
> +
> +impl NumaNode {
> + /// create a new NUMA node identifer (non-negative integer)

s/identifer/identifier/

Please also add an empty line in between those two.

> + /// returns EINVAL if a negative id or an id exceeding MAX_NUMNODES is specified

Please start with a capital letter, use markdown and end with a period.

> + pub fn new(node: i32) -> Result<Self> {
> + // SAFETY: MAX_NUMNODES never exceeds 2**10 because NODES_SHIFT is 0..10

This must not be a safety comment, but a normal one. Please use markdown and end
the sentence with a period.

> + if node < 0 || node >= bindings::MAX_NUMNODES as i32 {
> + return Err(EINVAL);
> + }
> + Ok(Self(node))
> + }
> +}

With that fixed,

Acked-by: Danilo Krummrich <dakr@kernel.org>