Re: [PATCH 1/5] mm: Add __GFP_NO_OOM_KILL flag

David Rientjes
2009-05-07T20:25:06Z

On Thu, 7 May 2009, Rafael J. Wysocki wrote:

> OK, let's try with __GFP_NO_OOM_KILL first. If there's too much disagreement,
> I'll use the freezer-based approach instead.
>

Third time I'm going to suggest this, and I'd like a response on why it's
not possible instead of being ignored.

All of your tasks are in D state other than kthreads, right? That means
they won't be in the oom killer (thus no zones are oom locked), so you can
easily do this

struct zone *z;
for_each_populated_zone(z)
zone_set_flag(z, ZONE_OOM_LOCKED);

and then

for_each_populated_zone(z)
zone_clear_flag(z, ZONE_OOM_LOCKED);

The serialization is done with trylocks so this will never invoke the oom
killer because all zones in the allocator's zonelist will be oom locked.

Why does this not work for you?