Re: [PATCH] 2.6.26-rc: x86: pci-dma.c: use __GFP_NO_OOM instead of __GFP_NORETRY

From: Andi Kleen
Date: Wed May 28 2008 - 08:45:34 EST


> > - 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/