Messages in this thread | | | Date | Fri, 23 May 2008 00:59:49 +0200 | From | Andi Kleen <> | Subject | Re: 2.6.26: x86/kernel/pci_dma.c: gfp |= __GFP_NORETRY ? |
| |
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
| |