public inbox for linux-mm@kvack.org
 help / color / mirror / Atom feed
* [PATCH] slub: use N_NORMAL_MEMORY in can_free_to_pcs to handle remote frees
@ 2026-04-03  7:37 Hao Li
  2026-04-03 12:02 ` Harry Yoo (Oracle)
  2026-04-03 18:02 ` David Rientjes
  0 siblings, 2 replies; 6+ messages in thread
From: Hao Li @ 2026-04-03  7:37 UTC (permalink / raw)
  To: vbabka, harry.yoo, akpm
  Cc: cl, rientjes, roman.gushchin, linux-mm, linux-kernel, Hao Li

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



^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-04-06  1:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-03  7:37 [PATCH] slub: use N_NORMAL_MEMORY in can_free_to_pcs to handle remote frees Hao Li
2026-04-03 12:02 ` Harry Yoo (Oracle)
2026-04-03 18:14   ` Vlastimil Babka (SUSE)
2026-04-04  4:05     ` Hao Li
2026-04-06  1:57     ` Harry Yoo (Oracle)
2026-04-03 18:02 ` David Rientjes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox