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

From: David Rientjes
Date: Thu May 07 2009 - 16:25:30 EST


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