Re: [PATCH] oom: skip frozen tasks

From: Rafael J. Wysocki
Date: Fri Aug 26 2011 - 17:01:54 EST


On Friday, August 26, 2011, David Rientjes wrote:
> On Fri, 26 Aug 2011, Michal Hocko wrote:
>
> > Let's give all frozen tasks a bonus (OOM_SCORE_ADJ_MAX/2) so that we do
> > not consider them unless really necessary and if we really pick up one
> > then thaw its threads before we try to kill it.
> >
>
> I don't like arbitrary heuristics like this because they polluted the old
> oom killer before it was rewritten and made it much more unpredictable.
> The only heuristic it includes right now is a bonus for root tasks so that
> when two processes have nearly the same amount of memory usage (within 3%
> of available memory), the non-root task is chosen instead.
>
> This bonus is actually saying that a single frozen task can use up to 50%
> more of the machine's capacity in a system-wide oom condition than the
> task that will now be killed instead. That seems excessive.
>
> I do like the idea of automatically thawing the task though and if that's
> possible then I don't think we need to manipulate the badness heuristic at
> all. I know that wouldn't be feasible when we've frozen _all_ threads and
> that's why we have oom_killer_disable(), but we'll have to check with
> Rafael to see if something like this could work. Rafael?

That depends a good deal on when the thawing happens and what the thawed
task can do before being killed. For example, if the thawing happens
while devices are suspended and the thawed task accesses a driver through
ioctl(), for example, the purpose of freezing will be defeated.

Thanks,
Rafael
--
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/