Re: [PATCH] mm/mempool: Use kmalloc_array_node to replace kmalloc_array

From: Harry (Hyeonggon) Yoo
Date: Fri Feb 07 2025 - 01:47:18 EST


On Fri, Feb 07, 2025 at 01:52:13PM +0800, Liu Ye wrote:
> The kmalloc_array call could be replaced with kmalloc_array_node
> to allocate memory on a specific NUMA node.

Why is it useful to replace kmalloc_array() with kmalloc_array_node()
in the code?

> Signed-off-by: Liu Ye <liuye@xxxxxxxxxx>
> ---
> mm/mempool.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/mm/mempool.c b/mm/mempool.c
> index 3223337135d0..51eabcc87177 100644
> --- a/mm/mempool.c
> +++ b/mm/mempool.c
> @@ -328,8 +328,8 @@ int mempool_resize(mempool_t *pool, int new_min_nr)
> spin_unlock_irqrestore(&pool->lock, flags);
>
> /* Grow the pool */
> - new_elements = kmalloc_array(new_min_nr, sizeof(*new_elements),
> - GFP_KERNEL);
> + new_elements = kmalloc_array_node(new_min_nr, sizeof(*new_elements),
> + GFP_KERNEL, NUMA_NO_NODE);

What do you mean by 'allocate memory on a specific NUMA node'
when you pass NUMA_NO_NODE?
It's essentially the same as what kmalloc_array() does.

--
Harry