Re: [PATCH 3/3] memcg: oom kill disable and oom status

Andrew Morton
2010-03-15T22:00:26Z

On Fri, 12 Mar 2010 14:37:53 +0900
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:

>
> I haven't get enough comment to this patch itself. But works well.
> Feel free to request me if you want me to change some details.
>
> ==
> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
>
> This adds a feature to disable oom-killer for memcg, if disabled,
> of course, tasks under memcg will stop.
>
> But now, we have oom-notifier for memcg. And the world around
> memcg is not under out-of-memory. memcg's out-of-memory just
> shows memcg hits limit. Then, administrator or
> management daemon can recover the situation by
> - kill some process
> - enlarge limit, add more swap.
> - migrate some tasks
> - remove file cache on tmps (difficult ?)
>
> Unlike OOM-Kill by the kernel, the users can take snapshot or coredump
> of guilty process, cgroups.
>

Looks complicated.

> --- mmotm-2.6.34-Mar9.orig/mm/memcontrol.c
> +++ mmotm-2.6.34-Mar9/mm/memcontrol.c
> @@ -235,7 +235,8 @@ struct mem_cgroup {
> * mem_cgroup ? And what type of charges should we move ?
> */
> unsigned long move_charge_at_immigrate;
> -
> + /* Disable OOM killer */
> + unsigned long oom_kill_disable;
> /*
> * percpu counter.
> */

Would have been better to make this `int' or `bool', and put it next to
some other 32-bit value in this struct.