Re: [PATCH] mm, page_alloc: prevent infinite loop in buffered_rmqueue()

From: Mel Gorman
Date: Mon May 30 2016 - 06:57:52 EST

On Mon, May 30, 2016 at 11:46:05AM +0200, Vlastimil Babka wrote:
> On 05/30/2016 11:01 AM, Mel Gorman wrote:
> >From: Vlastimil Babka <vbabka@xxxxxxx>
> >
> >In DEBUG_VM kernel, we can hit infinite loop for order == 0 in
> >buffered_rmqueue() when check_new_pcp() returns 1, because the bad page is
> >never removed from the pcp list. Fix this by removing the page before retrying.
> >Also we don't need to check if page is non-NULL, because we simply grab it from
> >the list which was just tested for being non-empty.
> >
> >Fixes:
> That was a wrong one, which I corrected later. Also it's no longer mmotm.
> Correction below:
> Fixes: 479f854a207c ("mm, page_alloc: defer debugging checks of pages
> allocated from the PCP")

Yes sorry, I meant to clean it up but had just re-read the patch itself,
confirmed it was missing and was still required.

Mel Gorman