mm/mempool.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
The kmalloc_array call could be replaced with kmalloc_array_node
to allocate memory on a specific NUMA node.
Signed-off-by: Liu Ye <liuye@kylinos.cn>
---
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);
if (!new_elements)
return -ENOMEM;
--
2.25.1
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@kylinos.cn> > --- > 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
在 2025/2/7 14:47, Harry (Hyeonggon) Yoo 写道: > 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@kylinos.cn> >> --- >> 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. > Yeah, my brain short-circuited. Discard this patch.
© 2016 - 2026 Red Hat, Inc.