mm/slub.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
Memory hotplug now keeps N_NORMAL_MEMORY up to date correctly, so make
can_free_to_pcs() use it.
As a result, when freeing objects on memoryless nodes, or on nodes that
have memory but only in ZONE_MOVABLE, the objects can be freed to the
sheaf instead of going through the slow path.
Signed-off-by: Hao Li <hao.li@linux.dev>
---
Hi Vlastimil, this patch depends on a prerequisite patch[1] from a few days
ago. I'm not sure how this should be handled. I wonder if Andrew might put them
in the same tree.
[1] https://lore.kernel.org/linux-mm/20260330035941.518186-1-hao.li@linux.dev/
---
mm/slub.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/mm/slub.c b/mm/slub.c
index fb2c5c57bc4e..4927407c9699 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -6022,14 +6022,15 @@ static __always_inline bool can_free_to_pcs(struct slab *slab)
goto check_pfmemalloc;
/*
- * Freed object isn't from this cpu's node, but that node is memoryless.
+ * Freed object isn't from this cpu's node, but that node is memoryless
+ * or only has ZONE_MOVABLE memory, which slab cannot allocate from.
* Proceed as it's better to cache remote objects than falling back to
* the slowpath for everything. The allocation side can never obtain
* a local object anyway, if none exist. We don't have numa_mem_id() to
* point to the closest node as we would on a proper memoryless node
* setup.
*/
- if (unlikely(!node_state(numa_node, N_MEMORY)))
+ if (unlikely(!node_state(numa_node, N_NORMAL_MEMORY)))
goto check_pfmemalloc;
#endif
--
2.50.1
On Fri, 3 Apr 2026, Hao Li wrote: > Memory hotplug now keeps N_NORMAL_MEMORY up to date correctly, so make > can_free_to_pcs() use it. > > As a result, when freeing objects on memoryless nodes, or on nodes that > have memory but only in ZONE_MOVABLE, the objects can be freed to the > sheaf instead of going through the slow path. > > Signed-off-by: Hao Li <hao.li@linux.dev> Acked-by: David Rientjes <rientjes@google.com>
On Fri, Apr 03, 2026 at 03:37:36PM +0800, Hao Li wrote: > Memory hotplug now keeps N_NORMAL_MEMORY up to date correctly, so make > can_free_to_pcs() use it. > > As a result, when freeing objects on memoryless nodes, or on nodes that > have memory but only in ZONE_MOVABLE, the objects can be freed to the > sheaf instead of going through the slow path. > > Signed-off-by: Hao Li <hao.li@linux.dev> > --- Acked-by: Harry Yoo (Oracle) <harry@kernel.org> > Hi Vlastimil, this patch depends on a prerequisite patch[1] from a few days > ago. I'm not sure how this should be handled. > I wonder if Andrew might put them in the same tree. But it also depends on the patch series "[PATCH 0/3] slab: support memoryless nodes with sheaves". So perhaps better send it to Linus after 7.1-rc1? Thanks! > [1] https://lore.kernel.org/linux-mm/20260330035941.518186-1-hao.li@linux.dev/ -- Cheers, Harry / Hyeonggon
On 4/3/26 14:02, Harry Yoo (Oracle) wrote: > On Fri, Apr 03, 2026 at 03:37:36PM +0800, Hao Li wrote: >> Memory hotplug now keeps N_NORMAL_MEMORY up to date correctly, so make >> can_free_to_pcs() use it. >> >> As a result, when freeing objects on memoryless nodes, or on nodes that >> have memory but only in ZONE_MOVABLE, the objects can be freed to the >> sheaf instead of going through the slow path. >> >> Signed-off-by: Hao Li <hao.li@linux.dev> >> --- > > Acked-by: Harry Yoo (Oracle) <harry@kernel.org> > >> Hi Vlastimil, this patch depends on a prerequisite patch[1] from a few days >> ago. I'm not sure how this should be handled. > >> I wonder if Andrew might put them in the same tree. > But it also depends on the patch series > "[PATCH 0/3] slab: support memoryless nodes with sheaves". > > So perhaps better send it to Linus after 7.1-rc1? [1] is in mm-hotfixes so it should get to mainline before 7.0 final, so then it's fine to add this to slab updates PR for 7.1-rc1 > Thanks! > >> [1] https://lore.kernel.org/linux-mm/20260330035941.518186-1-hao.li@linux.dev/ >
On Fri, Apr 03, 2026 at 08:14:11PM +0200, Vlastimil Babka (SUSE) wrote: > On 4/3/26 14:02, Harry Yoo (Oracle) wrote: > > On Fri, Apr 03, 2026 at 03:37:36PM +0800, Hao Li wrote: > >> Memory hotplug now keeps N_NORMAL_MEMORY up to date correctly, so make > >> can_free_to_pcs() use it. > >> > >> As a result, when freeing objects on memoryless nodes, or on nodes that > >> have memory but only in ZONE_MOVABLE, the objects can be freed to the > >> sheaf instead of going through the slow path. > >> > >> Signed-off-by: Hao Li <hao.li@linux.dev> > >> --- > > > > Acked-by: Harry Yoo (Oracle) <harry@kernel.org> > > > >> Hi Vlastimil, this patch depends on a prerequisite patch[1] from a few days > >> ago. I'm not sure how this should be handled. > > > >> I wonder if Andrew might put them in the same tree. > > > But it also depends on the patch series > > "[PATCH 0/3] slab: support memoryless nodes with sheaves". > > > > So perhaps better send it to Linus after 7.1-rc1? > > [1] is in mm-hotfixes so it should get to mainline before 7.0 final, Right. > so then it's fine to add this to slab updates PR for 7.1-rc1 Sounds great! > >> [1] https://lore.kernel.org/linux-mm/20260330035941.518186-1-hao.li@linux.dev/ > > -- Cheers, Harry / Hyeonggon
On Fri, Apr 03, 2026 at 08:14:11PM +0200, Vlastimil Babka (SUSE) wrote: > On 4/3/26 14:02, Harry Yoo (Oracle) wrote: > > On Fri, Apr 03, 2026 at 03:37:36PM +0800, Hao Li wrote: > >> Memory hotplug now keeps N_NORMAL_MEMORY up to date correctly, so make > >> can_free_to_pcs() use it. > >> > >> As a result, when freeing objects on memoryless nodes, or on nodes that > >> have memory but only in ZONE_MOVABLE, the objects can be freed to the > >> sheaf instead of going through the slow path. > >> > >> Signed-off-by: Hao Li <hao.li@linux.dev> > >> --- > > > > Acked-by: Harry Yoo (Oracle) <harry@kernel.org> Thanks for Ack! > > > >> Hi Vlastimil, this patch depends on a prerequisite patch[1] from a few days > >> ago. I'm not sure how this should be handled. > > > >> I wonder if Andrew might put them in the same tree. > > > But it also depends on the patch series > > "[PATCH 0/3] slab: support memoryless nodes with sheaves". > > > > So perhaps better send it to Linus after 7.1-rc1? > > [1] is in mm-hotfixes so it should get to mainline before 7.0 final, so then > it's fine to add this to slab updates PR for 7.1-rc1 Sounds good, thanks! > > > Thanks! > > > >> [1] https://lore.kernel.org/linux-mm/20260330035941.518186-1-hao.li@linux.dev/ > > > -- Thanks, Hao
© 2016 - 2026 Red Hat, Inc.