mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
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. Link: https://lkml.kernel.org/r/20250205092721.9395-5-bhe@redhat.com Signed-off-by: Baoquan He <bhe@redhat.com> Cc: Chris Li <chrisl@kernel.org> Cc: Kairui Song <ryncsn@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
0eb7d2c337
commit
9b9cba7289
|
|
@ -730,6 +730,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:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user