On Wed 13-03-19 08:52:16, Oscar Salvador wrote: > On Tue, Mar 12, 2019 at 09:42:16PM -0400, Qian Cai wrote: > > + > > + /* > > + * Onlining will reset pagetype flags and makes migrate type > > + * MOVABLE, so just need to decrease the number of isolated > > + * pageblocks zone counter here. > > + */ > > + for (pfn = start_pfn; pfn < end_pfn; pfn += pageblock_nr_pages) { > > + int i; > > + > > + for (i = 0; i < pageblock_nr_pages; i++) > > + if (pfn_valid_within(pfn + i)) { > > + zone->nr_isolate_pageblock--; > > + break; > > + } > > + } > > + > > I do not really like this. > > I first thought about saving the value before entering start_isolate_page_range, > but that could race with alloc_contig_range for instance. Yup. We need to take the zone lock. > So, why not make start_isolate_page_range to return the actual number of isolated > pageblocks? That makes more sense indeed. -- Michal Hocko SUSE Labs