[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cd98e89b8b609bd2781b2d24c721a59feda83ec8.1764297987.git.zhanghongru@xiaomi.com>
Date: Fri, 28 Nov 2025 11:12:42 +0800
From: Hongru Zhang <zhanghongru06@...il.com>
To: akpm@...ux-foundation.org,
vbabka@...e.cz,
david@...nel.org
Cc: linux-mm@...ck.org,
linux-kernel@...r.kernel.org,
surenb@...gle.com,
mhocko@...e.com,
jackmanb@...gle.com,
hannes@...xchg.org,
ziy@...dia.com,
lorenzo.stoakes@...cle.com,
Liam.Howlett@...cle.com,
rppt@...nel.org,
axelrasmussen@...gle.com,
yuanchu@...gle.com,
weixugc@...gle.com,
Hongru Zhang <zhanghongru@...omi.com>
Subject: [PATCH 3/3] mm: optimize free_area_empty() check using per-migratetype counts
From: Hongru Zhang <zhanghongru@...omi.com>
Use per-migratetype counts instead of list_empty() helps reduce a
few cpu instructions.
Signed-off-by: Hongru Zhang <zhanghongru@...omi.com>
---
mm/internal.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/internal.h b/mm/internal.h
index 1561fc2ff5b8..7759f8fdf445 100644
--- a/mm/internal.h
+++ b/mm/internal.h
@@ -954,7 +954,7 @@ int find_suitable_fallback(struct free_area *area, unsigned int order,
static inline bool free_area_empty(struct free_area *area, int migratetype)
{
- return list_empty(&area->free_list[migratetype]);
+ return !READ_ONCE(area->mt_nr_free[migratetype]);
}
/* mm/util.c */
--
2.43.0
Powered by blists - more mailing lists