Re: [PATCH] mm: Add WARN_ON for possibility of infinite loop if empty lists in free_pcppages_bulk'

From: Mel Gorman
Date: Fri Aug 19 2016 - 10:07:51 EST


On Fri, Aug 19, 2016 at 09:07:21AM -0400, Pankaj Gupta wrote:
>
> >
> > On Fri, Aug 19, 2016 at 05:45:18PM +0530, Pankaj Gupta wrote:
> > > While debugging issue in realtime kernel i found a scenario
> > > which resulted in infinite loop resulting because of empty pcp->lists
> > > and valid 'to_free' value. This patch is to add 'WARN_ON' in function
> > > 'free_pcppages_bulk' if there is possibility of infinite loop because
> > > of any bug in code.
> > >
> >
> > What was the bug that allowed this situation to occur? It would imply
> > the pcp count was somehow out of sync.
>
> Yes pcp count was out of sync. It was a bug in the downstream code.

If the bug is not in the mainline code, I think it would be inappropriate
to add unnecessary code to a relatively hot path. At most, it should be
a VM_BUG_ON but the soft lockup should be clear enough.

--
Mel Gorman
SUSE Labs