Messages in this thread | | | Date | Wed, 28 May 2008 14:54:01 +0200 | From | Andi Kleen <> | Subject | Re: [PATCH] 2.6.26-rc: x86: pci-dma.c: use __GFP_NO_OOM instead of __GFP_NORETRY |
| |
> > - page = dma_alloc_pages(dev, gfp, get_order(size)); > > + /* Don't invoke OOM killer or retry in lower 16MB DMA zone */ > > + page = dma_alloc_pages(dev, > > + (gfp & GFP_DMA) ? gfp | __GFP_NORETRY : gfp, get_order(size)); > > if (page == NULL) > > return NULL; > > I guess that's more specifally solving that-which-we-wish-to-solve.
Then the allocator could still be stuck in ZONE_DMA32 on 64bit.
Also d_a_c() does one "speculative" allocation, as in an allocation where it knows the zone is too large for the mask but it tries anyways because it often works. In that case too much trying is also not good.
-Andi
| |