Moved drain_all_pages() from start_isolate_page_range() to users. This makes it more efficient, symmetric, and solves the race condition. This is a proposal that I described in Version 1 thread, otherwise no changes to patch 1. Version 1: https://lore.kernel.org/lkml/20200901124615.137200-1-pasha.tatashin@xxxxxxxxxx Version 2: https://lore.kernel.org/lkml/20200903140032.380431-1-pasha.tatashin@xxxxxxxxxx Pavel Tatashin (2): mm/memory_hotplug: drain per-cpu pages again during memory offline mm: drain per-cpu pages outside of isolate_migratepages_range mm/memory_hotplug.c | 1 + mm/page_alloc.c | 2 ++ mm/page_isolation.c | 32 ++++++++++++-------------------- 3 files changed, 15 insertions(+), 20 deletions(-) -- 2.25.1