On Tue, 16 Feb 2010 16:31:39 -0800 (PST) David Rientjes <rientjes@xxxxxxxxxx> wrote: > On Wed, 17 Feb 2010, KAMEZAWA Hiroyuki wrote: > > > Hmm, I have a few reason to add special behavior to memcg rather than panic. > > > > - freeze_at_oom is enough. > > If OOM can be notified, the management daemon can do useful jobs. Shutdown > > all other cgroups or migrate them to other host and do kdump. > > > > The same could be said for cpusets if users use that for memory isolation. > cpuset's difficulty is that there are some methods which share the limitation. It's not simple that we have - cpuset - mempolicy per task - mempolicy per vma Sigh..but they are for their own purpose. > > But, Hmm...I'd like to go this way. > > > > 1. At first, support panic_on_oom=2 in memcg. > > > > This should panic in mem_cgroup_out_of_memory() and the documentation > should be added to Documentation/sysctl/vm.txt. > > The memory controller also has some protection in the pagefault oom > handler that seems like it could be made more general: instead of checking > for mem_cgroup_oom_called(), I'd rather do a tasklist scan to check for > already oom killed task (checking for the TIF_MEMDIE bit) and check all > zones for ZONE_OOM_LOCKED. If no oom killed tasks are found and no zones > are locked, we can check sysctl_panic_on_oom and invoke the system-wide > oom. > plz remove memcg's hook after doing that. Current implemantation is desgined not to affect too much to other cgroups by doing unnecessary jobs. > > 2. Second, I'll add OOM-notifier and freeze_at_oom to memcg. > > and don't call memcg_out_of_memory in oom_kill.c in this case. Because > > we don't kill anything. Taking coredumps of all procs in memcg is not > > very difficult. > > > > The oom notifier would be at a higher level than the oom killer, the oom > killer's job is simply to kill a task when it is called. > So for these particular cases, you would never even call into out_of_memory() to panic > the machine in the first place. That's my point. Thanks, -Kame -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>