OSDN Git Service

mm: compaction: make sure highest is above the min_pfn
authorMiaohe Lin <linmiaohe@huawei.com>
Fri, 29 Apr 2022 06:16:19 +0000 (23:16 -0700)
committerakpm <akpm@linux-foundation.org>
Fri, 29 Apr 2022 06:16:19 +0000 (23:16 -0700)
It's not guaranteed that highest will be above the min_pfn.  If highest is
below the min_pfn, migrate_pfn and free_pfn can meet prematurely and lead
to some useless work.  Make sure highest is above min_pfn to avoid making
a futile effort.

Link: https://lkml.kernel.org/r/20220418141253.24298-13-linmiaohe@huawei.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Cc: Charan Teja Kalla <charante@codeaurora.org>
Cc: David Hildenbrand <david@redhat.com>
Cc: Pintu Kumar <pintu@codeaurora.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/compaction.c

index 609a76d..6597010 100644 (file)
@@ -1532,7 +1532,7 @@ fast_isolate_freepages(struct compact_control *cc)
                         * not found, be pessimistic for direct compaction
                         * and use the min mark.
                         */
-                       if (highest) {
+                       if (highest >= min_pfn) {
                                page = pfn_to_page(highest);
                                cc->free_pfn = highest;
                        } else {