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

David Rientjes
2009-05-09T22:39:56Z

On Sat, 9 May 2009, Rafael J. Wysocki wrote:

> > This has been changed in the latest mmotm with Mel's page alloactor
> > patches (and I think yours should be based on mmotm). Specifically,
> > page-allocator-break-up-the-allocator-entry-point-into-fast-and-slow-paths.patch.
> >
> > Before his patchset, zonelists that had ZONE_OOM_LOCKED set for at least
> > one of their zones would unconditionally goto restart. Now, if
> > order > PAGE_ALLOC_COSTLY_ORDER, it gives up and returns NULL. Otherwise,
> > it does goto restart.
> >
> > So if your allocation has order > PAGE_ALLOC_COSTLY_ORDER,
>
> It doesn't. All of my allocations are of order 0.
>

All order 0 allocations are implicitly __GFP_NOFAIL and will loop
endlessly unless they can't block. So if you want to simply prohibit the
oom killer from being invoked and not change the retry behavior, setting
ZONE_OOM_LOCKED for all zones will do that. If your machine hangs, it
means nothing can be reclaimed and you can't free memory via oom killing,
so there's nothing else the page allocator can do.