> -----Original Message----- > From: Michal Hocko <[email protected]> > Sent: Monday, 17 June 2019 5:47 PM > To: Alastair D'Silva <[email protected]> > Cc: [email protected]; Arun KS <[email protected]>; Mukesh Ojha > <[email protected]>; Logan Gunthorpe <[email protected]>; Wei > Yang <[email protected]>; Peter Zijlstra <[email protected]>; > Ingo Molnar <[email protected]>; [email protected]; Qian Cai > <[email protected]>; Thomas Gleixner <[email protected]>; Andrew Morton > <[email protected]>; Mike Rapoport <[email protected]>; > Baoquan He <[email protected]>; David Hildenbrand <[email protected]>; > Josh Poimboeuf <[email protected]>; Pavel Tatashin > <[email protected]>; Juergen Gross <[email protected]>; Oscar > Salvador <[email protected]>; Jiri Kosina <[email protected]>; linux- > [email protected] > Subject: Re: [PATCH 4/5] mm/hotplug: Avoid RCU stalls when removing large > amounts of memory > > On Mon 17-06-19 14:36:30, Alastair D'Silva wrote: > > From: Alastair D'Silva <[email protected]> > > > > When removing sufficiently large amounts of memory, we trigger RCU > > stall detection. By periodically calling cond_resched(), we avoid > > bogus stall warnings. > > > > Signed-off-by: Alastair D'Silva <[email protected]> > > --- > > mm/memory_hotplug.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index > > e096c987d261..382b3a0c9333 100644 > > --- a/mm/memory_hotplug.c > > +++ b/mm/memory_hotplug.c > > @@ -578,6 +578,9 @@ void __remove_pages(struct zone *zone, unsigned > long phys_start_pfn, > > __remove_section(zone, __pfn_to_section(pfn), > map_offset, > > altmap); > > map_offset = 0; > > + > > + if (!(i & 0x0FFF)) > > + cond_resched(); > > We already do have cond_resched before __remove_section. Why is an > additional needed?
I was getting stalls when removing ~1TB of memory. -- Alastair D'Silva mob: 0423 762 819 skype: alastair_dsilva msn: [email protected] blog: http://alastair.d-silva.org Twitter: @EvilDeece

