On Thu 18-06-20 22:28:22, Sasha Levin wrote: > On Thu, Jun 18, 2020 at 06:26:49PM +0200, Greg KH wrote: > > On Thu, Jun 18, 2020 at 05:55:43PM +0200, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > > > > > > The patch below does not apply to the 5.7-stable tree. > > > If someone wants it applied there, or to any other stable or longterm > > > tree, then please email the backport, including the original git commit > > > id to <stable@xxxxxxxxxxxxxxx>. > > > > Oops, I applied things out of order, I've queued this and the 5.4 > > version up, but 4.19 doesn't apply as the dependant patch does not > > apply. > > Something like this should work? Nope. Unless I am misreading the old code you are udner pgdat_resize_lock. Or is there any other change queued before this backport to remove the lock? (I didn't get to check more closely but it would be 3d060856adfc5 IIRC). > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 7181dfe76440..b7905a075e79 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -1611,11 +1611,13 @@ static int __init deferred_init_memmap(void *data) > spfn = max_t(unsigned long, first_init_pfn, PFN_UP(spa)); > epfn = min_t(unsigned long, zone_end_pfn(zone), PFN_DOWN(epa)); > nr_pages += deferred_init_pages(nid, zid, spfn, epfn); > + cond_resched(); > } > for_each_free_mem_range(i, nid, MEMBLOCK_NONE, &spa, &epa, NULL) { > spfn = max_t(unsigned long, first_init_pfn, PFN_UP(spa)); > epfn = min_t(unsigned long, zone_end_pfn(zone), PFN_DOWN(epa)); > deferred_free_pages(nid, zid, spfn, epfn); > + cond_resched(); > } > > /* Sanity check that the next zone really is unpopulated */ > > -- > Thanks, > Sasha -- Michal Hocko SUSE Labs