[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250205092721.9395-5-bhe@redhat.com>
Date: Wed, 5 Feb 2025 17:27:13 +0800
From: Baoquan He <bhe@...hat.com>
To: linux-kernel@...r.kernel.org
Cc: linux-mm@...ck.org,
akpm@...ux-foundation.org,
ryncsn@...il.com,
chrisl@...nel.org,
Baoquan He <bhe@...hat.com>
Subject: [PATCH 04/12] mm/swap: skip scanning cluster range if it's empty cluster
Since ci->lock has been taken when isolating cluster from
si->free_clusters or taking si->percpu_cluster->next[order],
it's unnecessary to scan and check the cluster range availability
if i'ts empty cluster, and this can accelerate the huge page
swapping.
Signed-off-by: Baoquan He <bhe@...hat.com>
---
mm/swapfile.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/mm/swapfile.c b/mm/swapfile.c
index 9c9a4ec6d4c6..61efde853eea 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -729,6 +729,9 @@ static bool cluster_scan_range(struct swap_info_struct *si,
unsigned long offset, end = start + nr_pages;
unsigned char *map = si->swap_map;
+ if (cluster_is_empty(ci))
+ return true;
+
for (offset = start; offset < end; offset++) {
switch (READ_ONCE(map[offset])) {
case 0:
--
2.41.0
Powered by blists - more mailing lists