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

From: David Rientjes
Date: Mon Dec 14 2009 - 23:31:06 EST


On Tue, 15 Dec 2009, KAMEZAWA Hiroyuki wrote:

> I'm now preparing more counters for mm's statistics. It's better to
> wait and to see what we can do more. And other patches for total
> oom-killer improvement is under development.
>
> And, there is a compatibility problem.
> As David says, this may break some crazy software which uses
> fake_numa+cpuset+oom_killer+oom_adj for resource controlling.
> (even if I recommend them to use memcg rather than crazy tricks...)
>

That's not at all what I said. I said using total_vm as a baseline allows
users to define when a process is to be considered "rogue," that is, using
more memory than expected. Using rss would be inappropriate since it is
highly dynamic and depends on the state of the VM at the time of oom,
which userspace cannot possibly keep updated.

You consistently ignore that point: the power of /proc/pid/oom_adj to
influence when a process, such as a memory leaker, is to be considered as
a high priority for an oom kill. It has absolutely nothing to do with
fake NUMA, cpusets, or memcg.

> 2 ideas which I can think of now are..
> 1) add sysctl_oom_calc_on_committed_memory
> If this is set, use vm-size instead of rss.
>

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.

> 2) add /proc/<pid>/oom_guard_size
> This allows users to specify "valid/expected size" of a task.
> When
> #echo 10M > /proc/<pid>/oom_guard_size
> At OOM calculation, 10Mbytes is subtracted from rss size.
> (The best way is to estimate this automatically from vm_size..but...)

Expected rss is almost impossible to tune for cpusets that have a highly
dynamic set of mems, let alone without containment.
--
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/