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

Reply via email to