Re: [PATCH 1/3] PM: Disable OOM killer during system-wide power transitions

Andrew Morton
2009-05-01T23:09:31Z

On Sat, 2 May 2009 00:27:30 +0200
"Rafael J. Wysocki" <rjw-KKrjLPT3xs0@public.gmane.org> wrote:

> From: Rafael J. Wysocki <rjw-KKrjLPT3xs0@public.gmane.org>
>
> The OOM killer is not particularly useful during system-wide power
> transitions, so do not use it if such a transition is in progress.
>

so... I think what you've done here is to arrange for the page
allocator to return NULL if we're hibernating rather than oom-killing,
yes?

Does the same apply to suspending? If so, why?

I think this is an OK change, as long as the only thing which is
allocating memory is hibernation itself. If random processes are still
doing random memory allocations at this time then their failed memory
allocation could be just as fatal as an oom-killing. Moreso if they're
s/bin/init or whatever.

So is it the case that pm_transition_in_progress() is only true during
the highly-constrained hibernation process? After everything is frozen?

If so, there are alternatives - the calling process could set
PF_DONT_KILL_ANYONE_FOR_ME, or could pass __GFP_DONT_KILL_ANYONE_FOR_ME.
Those might be worse alternatives, dunno - I'm just asking probing
questions ;)