mm/compaction: avoid unneeded pageblock_end_pfn when no_set_skip_hint is set
authorKemeng Shi <shikemeng@huawei.com>
Fri, 21 Jul 2023 15:09:57 +0000 (23:09 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 18 Aug 2023 17:12:44 +0000 (10:12 -0700)
Move pageblock_end_pfn after no_set_skip_hint check to avoid unneeded
pageblock_end_pfn if no_set_skip_hint is set.

Link: https://lkml.kernel.org/r/20230721150957.2058634-3-shikemeng@huawei.com
Signed-off-by: Kemeng Shi <shikemeng@huawei.com>
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/compaction.c

index 480f29b..e6ac0ef 100644 (file)
@@ -463,12 +463,12 @@ static void update_cached_migrate(struct compact_control *cc, unsigned long pfn)
 {
        struct zone *zone = cc->zone;
 
-       pfn = pageblock_end_pfn(pfn);
-
        /* Set for isolation rather than compaction */
        if (cc->no_set_skip_hint)
                return;
 
+       pfn = pageblock_end_pfn(pfn);
+
        if (pfn > zone->compact_cached_migrate_pfn[0])
                zone->compact_cached_migrate_pfn[0] = pfn;
        if (cc->mode != MIGRATE_ASYNC &&