Re: 2.6.26: x86/kernel/pci_dma.c: gfp |= __GFP_NORETRY ?

From: Andi Kleen
Date: Thu May 22 2008 - 18:51:43 EST


On Thu, May 22, 2008 at 09:58:11PM +0200, Thomas Gleixner wrote:
> On Thu, 22 May 2008, Andi Kleen wrote:
> > On Wed, May 21, 2008 at 09:49:27AM -0300, Glauber Costa wrote:
> > > probably andi has a better idea on why it was added, since it used to
> > > live in his tree?
> >
> > d_a_c() tries a couple of zones, and running the oom killer for each
> > is inconvenient. Especially for the 16MB DMA zone which is unlikely
> > to be cleared by the OOM killer anyways because normal user applications
> > don't put pages in there. There was a real report with some problems
> > in this area.
>
> Can you give some pointers please ?

To the bug report? Memory is fuzzy, but I think it was some SUSE bugzilla
report, might have been for SLES.

Anyways the reasoning is still valid. Longer term the mask allocator
would be the right fix, shorter term a new GFP flag as proposed
sounds reasonable.

The trick is just that you need different __GFP_ flags for the different
allocations. e.g. the first the "higher zone" quick try should
continue to use __GFP_NORETRY. And the 16MB one should too. It would
only make sense for the main request.

In the mask allocator patchkit kernel it should be also ok already.

-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/