__alloc_contig_migrate_range already has lru_add_drain_all call via migrate_prep. It's necessary to move LRU taget pages into LRU list to be able to isolated. However, lru_add_drain_all call after __alloc_contig_migrate_range is pointless since it has changed source page freeing from putback_lru_pages to put_page[1].
This patch removes it. [1] c6c919eb90e0, ("mm: use put_page() to free page instead of putback_lru_page()" Reviewed-by: Oscar Salvador <osalva...@suse.de> Acked-by: Vlastimil Babka <vba...@suse.cz> Acked-by: Michal Hocko <mho...@suse.com> Signed-off-by: Minchan Kim <minc...@kernel.org> --- * From v1 - https://lore.kernel.org/linux-mm/20210209175048.361638-1-minc...@kernel.org/ * add [Acked|Reviewed]-by - vbabka, mhocko, osalvador * add history to the description - vbabka mm/page_alloc.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 6446778cbc6b..f8fbee73dd6d 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -8603,8 +8603,6 @@ int alloc_contig_range(unsigned long start, unsigned long end, * isolated thus they won't get removed from buddy. */ - lru_add_drain_all(); - order = 0; outer_start = start; while (!PageBuddy(pfn_to_page(outer_start))) { -- 2.30.0.478.g8a0d178c01-goog