On Wed, Aug 19, 2020 at 07:59:57PM +0200, David Hildenbrand wrote: > Currently, it can happen that pages are allocated (and freed) via the buddy > before we finished basic memory onlining. > > For example, pages are exposed to the buddy and can be allocated before > we actually mark the sections online. Allocated pages could suddenly > fail pfn_to_online_page() checks. We had similar issues with pcp > handling, when pages are allocated+freed before we reach > zone_pcp_update() in online_pages() [1]. > > Instead, mark all pageblocks MIGRATE_ISOLATE, such that allocations are > impossible. Once done with the heavy lifting, use > undo_isolate_page_range() to move the pages to the MIGRATE_MOVABLE > freelist, marking them ready for allocation. Similar to offline_pages(), > we have to manually adjust zone->nr_isolate_pageblock. > > [1] > https://lkml.kernel.org/r/[email protected] > > Acked-by: Michal Hocko <[email protected]> > Cc: Andrew Morton <[email protected]> > Cc: Michal Hocko <[email protected]> > Cc: Wei Yang <[email protected]> > Cc: Baoquan He <[email protected]> > Cc: Pankaj Gupta <[email protected]> > Cc: Oscar Salvador <[email protected]> > Cc: Charan Teja Reddy <[email protected]> > Signed-off-by: David Hildenbrand <[email protected]>
Reviewed-by: Oscar Salvador <[email protected]> -- Oscar Salvador SUSE L3

