]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mm/page_isolation: remove migratetype from undo_isolate_page_range()
authorZi Yan <ziy@nvidia.com>
Tue, 17 Jun 2025 02:11:13 +0000 (22:11 -0400)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 13 Jul 2025 23:38:18 +0000 (16:38 -0700)
Since migratetype is no longer overwritten during pageblock isolation,
undoing pageblock isolation no longer needs which migratetype to restore.

Link: https://lkml.kernel.org/r/20250617021115.2331563-6-ziy@nvidia.com
Signed-off-by: Zi Yan <ziy@nvidia.com>
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Brendan Jackman <jackmanb@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Kirill A. Shuemov <kirill.shutemov@linux.intel.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Richard Chang <richardycc@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/page-isolation.h
mm/memory_hotplug.c
mm/page_alloc.c
mm/page_isolation.c

index 7241a67196182c161b52bf59e6b1ef2c2477218a..7a681a49e73c90a1b84bcc7533244b7412586e13 100644 (file)
@@ -51,8 +51,7 @@ bool pageblock_unisolate_and_move_free_pages(struct zone *zone, struct page *pag
 int start_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
                             int migratetype, int flags);
 
-void undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
-                            int migratetype);
+void undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn);
 
 int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
                        int isol_flags);
index a3c2b0784070328078911a4d034ed95c1de9e4d7..6e3380ad1bf56cb76376f4137b8621824f659837 100644 (file)
@@ -1222,7 +1222,7 @@ int online_pages(unsigned long pfn, unsigned long nr_pages,
                build_all_zonelists(NULL);
 
        /* Basic onlining is complete, allow allocation of onlined pages. */
-       undo_isolate_page_range(pfn, pfn + nr_pages, MIGRATE_MOVABLE);
+       undo_isolate_page_range(pfn, pfn + nr_pages);
 
        /*
         * Freshly onlined pages aren't shuffled (e.g., all pages are placed to
@@ -2086,7 +2086,7 @@ int offline_pages(unsigned long start_pfn, unsigned long nr_pages,
 
 failed_removal_isolated:
        /* pushback to free area */
-       undo_isolate_page_range(start_pfn, end_pfn, MIGRATE_MOVABLE);
+       undo_isolate_page_range(start_pfn, end_pfn);
        memory_notify(MEM_CANCEL_OFFLINE, &mem_arg);
        if (node_arg.nid != NUMA_NO_NODE)
                node_notify(NODE_CANCEL_REMOVING_LAST_MEMORY, &node_arg);
index 938b01bed1f681b9d64f33bf1332b42a911c8250..8d4b3f12b9a623e7bc56d8e009a568ba11f1e2c7 100644 (file)
@@ -6984,7 +6984,7 @@ int alloc_contig_range_noprof(unsigned long start, unsigned long end,
                     start, end, outer_start, outer_end);
        }
 done:
-       undo_isolate_page_range(start, end, migratetype);
+       undo_isolate_page_range(start, end);
        return ret;
 }
 EXPORT_SYMBOL(alloc_contig_range_noprof);
index 08f627a5032f8d6c91b66d4a49561857d27b58bb..1edfef408faf6ee70ae631c67952623c19a26cab 100644 (file)
@@ -515,7 +515,7 @@ int start_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
                page = __first_valid_page(pfn, pageblock_nr_pages);
                if (page && set_migratetype_isolate(page, migratetype, flags,
                                        start_pfn, end_pfn)) {
-                       undo_isolate_page_range(isolate_start, pfn, migratetype);
+                       undo_isolate_page_range(isolate_start, pfn);
                        unset_migratetype_isolate(
                                pfn_to_page(isolate_end - pageblock_nr_pages));
                        return -EBUSY;
@@ -528,13 +528,10 @@ int start_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
  * undo_isolate_page_range - undo effects of start_isolate_page_range()
  * @start_pfn:         The first PFN of the isolated range
  * @end_pfn:           The last PFN of the isolated range
- * @migratetype:       New migrate type to set on the range
  *
- * This finds every MIGRATE_ISOLATE page block in the given range
- * and switches it to @migratetype.
+ * This finds and unsets every MIGRATE_ISOLATE page block in the given range
  */
-void undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
-                           int migratetype)
+void undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn)
 {
        unsigned long pfn;
        struct page *page;