[lkml]   [2009]   [Jun]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [patch 3/3 -mmotm] oom: invoke oom killer for __GFP_NOFAIL
Andrew Morton wrote:
> On Wed, 3 Jun 2009 15:10:38 -0700 (PDT)
> David Rientjes <> wrote:
>> On Tue, 2 Jun 2009, David Rientjes wrote:
>>> With my patch, we kill a memory hogging task that will free some memory so
>>> the allocation will succeed (or multiple tasks if insufficient contiguous
>>> memory is available). Kernel allocations use __GFP_NOFAIL, so the fault
>>> of this memory freeing is entirely on the caller, not the page allocator.
>>> My preference for handling this is to merge my patch (obviously :), and
>>> then hopefully deprecate __GFP_NOFAIL as much as possible although I don't
>>> suspect it could be eradicated forever.
>> I really hope this patch isn't getting dropped because it fixes the
>> possibility that a __GFP_NOFAIL allocation will fail when its definition
>> is to the contrary. Depending on the size of the allocation, that can
>> cause a panic in at least the reiserfs, ntfs, cxgb3, and gfs2 cases.
>> As I mentioned before, it's a noble goal to deprecate __GFP_NOFAIL as much
>> as possible and (at the least) prevent it from trying high-order
>> allocation attempts. The current implementation of the flag is
>> problematic, however, and this patch addresses it by attempting to free
>> some memory when direct reclaim fails.
> Sigh, all right, but we suck.
> Divy, could we please at least remove __GFP_NOFAIL from
> drivers/net/cxgb? It's really quite inappropriate for a driver to
> assume that core VM can do magic. Drivers should test the return value
> and handle the -ENOMEM in the old-fashioned way, please.

We started working on it, and got to eliminate them out of
We're still looking at eliminating its use in
I'll post the patches as soon as they are ready.


 \ /
  Last update: 2009-06-04 01:07    [W:0.044 / U:2.576 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site