On Tue, 13 Mar 2018 12:04:30 -0400 Pavel Tatashin <pasha.tatas...@oracle.com> 
wrote:

> > 
> > > --- a/mm/page_alloc.c
> > > +++ b/mm/page_alloc.c
> > > @@ -1506,7 +1506,6 @@ static void __init deferred_free_pages(int nid, int 
> > > zid, unsigned long pfn,
> > >           } else if (!(pfn & nr_pgmask)) {
> > >                   deferred_free_range(pfn - nr_free, nr_free);
> > >                   nr_free = 1;
> > > -                 cond_resched();
> > >           } else {
> > >                   nr_free++;
> > 
> > And how can we simply remove these cond_resched()s?  I assume this is
> > being done because interrupts are now disabled?  But those were there
> > for a reason, weren't they?
> 
> We must remove cond_resched() because we can't sleep anymore. They were
> added to fight NMI timeouts, so I will replace them with
> touch_nmi_watchdog() in a follow-up fix.

This makes no sense.  Any code section where we can add cond_resched()
was never subject to NMI timeouts because that code cannot be running with
disabled interrupts.

Reply via email to