Messages in this thread | | | Date | Wed, 24 Jun 2009 12:16:20 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: upcoming kerneloops.org item: get_page_from_freelist |
| |
On Wed, 24 Jun 2009, Andrew Morton wrote: > > My original patch was motiviated by the horror at discovering that > we're using this thing (which was _never_ supposed to have new users) > for order>0 allocations. We've gone backwards.
Don't be silly.
We've always depended on order-1 allocations working.
You're just totally misguided in your arguments, and you are FUNDAMENTALLY WRONG. Your argument is shit, BECAUSE IT IS NOT TRUE!
Lookie here. This is 2.6.0:mm/page_alloc.c:
do_retry = 0; if (!(gfp_mask & __GFP_NORETRY)) { if ((order <= 3) || (gfp_mask & __GFP_REPEAT)) do_retry = 1; if (gfp_mask & __GFP_NOFAIL) do_retry = 1; } if (do_retry) { blk_congestion_wait(WRITE, HZ/50); goto rebalance; }
Read that. Read if five times. Read it until you understand what it does.
Linus
PS. Here's a clue: Look at that 'order <= 3' thing. Think about what happens EVEN IF __NOFAIL) was not even set!
| |