mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-07 20:58:14 -04:00
mm/page_isolation: remove migratetype from undo_isolate_page_range()
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>
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user