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

David Rientjes
2009-05-07T18:50:04Z

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

> Unfortunately it fails too quickly with the combination as well, so it looks
> like we can't use __GFP_NORETRY during hibernation.
>

If you know that no other tasks are in the oom killer at suspend time, you
can do what I mentioned earlier:

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

and then later

for_each_populated_zone(z)
zone_clear_flag(z, ZONE_OOM_LOCKED);

The only race there is if a task is currently in the oom killer and will
subsequently clear ZONE_OOM_LOCKED for its zonelist.