]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
migrate: optimise alloc_migration_target()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Thu, 6 Nov 2025 20:14:49 +0000 (20:14 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 20 Nov 2025 21:43:57 +0000 (13:43 -0800)
Extract the zone number directly from the folio instead of using the
folio's zone number to look up the zone and asking the zone what its
number is.

[ziy@nvidia.com: fix folio_zonenum() return type]
Link: https://lkml.kernel.org/r/26E8FF35-503E-4F14-98F7-7B4FA25FBD37@nvidia.com
Link: https://lkml.kernel.org/r/20251106201452.2292631-2-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Zi Yan <ziy@nvidia.com>
Cc: David Hildenbrand <david@kernel.org>
Cc: Zi Yan <ziy@nvidia.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Joshua Hahn <joshua.hahnjy@gmail.com>
Cc: Rakie Kim <rakie.kim@sk.com>
Cc: Byungchul Park <byungchul@sk.com>
Cc: Gregory Price <gourry@gourry.net>
Cc: Ying Huang <ying.huang@linux.alibaba.com>
Cc: Alistair Popple <apopple@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/migrate.c

index 7c5d2efb9d47add9d795a36eec7a6906c1cae705..08d034dbeb9884ab8295a71477829ffba35dda4f 100644 (file)
@@ -2164,7 +2164,7 @@ struct folio *alloc_migration_target(struct folio *src, unsigned long private)
        gfp_t gfp_mask;
        unsigned int order = 0;
        int nid;
-       int zidx;
+       enum zone_type zidx;
 
        mtc = (struct migration_target_control *)private;
        gfp_mask = mtc->gfp_mask;
@@ -2190,7 +2190,7 @@ struct folio *alloc_migration_target(struct folio *src, unsigned long private)
                gfp_mask |= GFP_TRANSHUGE;
                order = folio_order(src);
        }
-       zidx = zone_idx(folio_zone(src));
+       zidx = folio_zonenum(src);
        if (is_highmem_idx(zidx) || zidx == ZONE_MOVABLE)
                gfp_mask |= __GFP_HIGHMEM;