Re: [BUGFIX][PATCH] oom-kill: fix NUMA consraint check with nodemaskv4.2

From: David Rientjes
Date: Mon Dec 14 2009 - 23:54:51 EST


On Tue, 15 Dec 2009, KAMEZAWA Hiroyuki wrote:

> > I would agree only if the oom killer used total_vm as a the default, it is
> > long-standing and allows for the aforementioned capability that you lose
> > with rss. I have no problem with the added sysctl to use rss as the
> > baseline when enabled.
> >
> I'll prepare a patch for adds
>
> sysctl_oom_kill_based_on_rss (default=0)
>
> ok ?
>

I have no strong feelings either for or against that, I guess users who
want to always kill the biggest memory hogger even when single page
__GFP_WAIT allocations fail could use it. I'm not sure it would get much
use, though.

I think we should methodically work out an oom killer badness rewrite that
won't compound the problem by adding more and more userspace knobs. In
other words, we should slow down, construct a list of goals that we want
to achieve, and then see what type of solution we can create.

A few requirements that I have:

- we must be able to define when a task is a memory hogger; this is
currently done by /proc/pid/oom_adj relying on the overall total_vm
size of the task as a baseline. Most users should have a good sense
of when their task is using more memory than expected and killing a
memory leaker should always be the optimal oom killer result. A better
set of units other than a shift on total_vm would be helpful, though.

- we must prefer tasks that run on a cpuset or mempolicy's nodes if the
oom condition is constrained by that cpuset or mempolicy and its not a
system-wide issue.

- we must be able to polarize the badness heuristic to always select a
particular task is if its very low priority or disable oom killing for
a task if its must-run.

The proposal may be to remove /proc/pid/oom_adj completely since I know
both you and KOSAKI-san dislike it, but we'd need an alternative which
keeps the above functionality intact.
--
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/