Re: [patch] arch: remove __GFP_REPEAT for order-0 allocations

Russell King - ARM Linux
2010-09-28T22:00:41Z

On Tue, Sep 28, 2010 at 02:36:55PM -0700, Andrew Morton wrote:
> On Tue, 28 Sep 2010 03:45:10 -0700 (PDT)
> David Rientjes <rientjes@google.com> wrote:
>
> > Order-0 allocations, including quicklist_alloc(), are always under
> > PAGE_ALLOC_COSTLY_ORDER, so they loop endlessly in the page allocator
> > already without the need for __GFP_REPEAT.
>
> That's only true for the current implementation of the page allocator.
>
> If we were to change the page allocator behaviour to not do that (and
> we change it daily!) then all those callsites which wanted __GFP_REPEAT
> behaviour will get broken. So someone would need to go back and work
> out how to unbreak them, if we remembered.
>
> Plus there's presumably some documentary benefit in leaving the
> __GFP_REPEATs in there.
>
> Why are those __GFP_REPEATs present at those callsites? What were
> developers trying to achieve?

As I understand it, it's come about by way of evolution. I think (I can't
check) that we had loops in the allocation functions. These were removed
and replaced by __GFP_REPEATs sometime before the current GIT history
started.

I'd check on bkbits.net which I'm sure will have it, but unfortunately I
can't get access to the history for include/asm-arm/pgalloc.h prior to
its move to arch/arm.