On Tue, 2 Mar 2010 16:38:16 -0800 (PST) David Rientjes <rientjes@xxxxxxxxxx> wrote: > On Wed, 3 Mar 2010, KAMEZAWA Hiroyuki wrote: > > > > This patch causes a regression??? You never said that in any of your > > > reviews and I have no idea what you're talking about, this patch simply > > > cleans up the code and closes a race where VM_FAULT_OOM could needlessly > > > kill tasks in parallel oom conditions. > > > > > try_set_system_oom() is not called in memory_cgroup_out_of_memory() path. > > Then, oom kill twice. > > > > So how does this cause a regression AT ALL? Calling try_set_system_oom() > in pagefault_out_of_memory() protects against concurrent out_of_memory() > from the page allocator before a task is actually killed. So this patch > closes that race entirely. So it most certainly does not introduce a > regression. > > You said earlier that mem_cgroup_out_of_memory() need not serialize > against parallel oom killings because in that scenario we must kill > something anyway, memory freeing from other ooms won't help if a memcg is > over its limit. So, yeah, we may kill two tasks if both the system and a > memcg are oom in parallel and neither have actually killed a task yet, but > that's much more jusitiable since we shouldn't rely on a memcg oom to free > memory for the entire system. > > So, again, there's absolutely no regression introduced by this patch. > I'm sorry if I miss somthing. memory_cgroup_out_of_memory() kills a task. and return VM_FAULT_OOM then, page_fault_out_of_memory() kills another task. and cause panic if panic_on_oom=1. Then, if we remove mem_cgroup_oom_called(), we have to take care that memcg doesn't cause VM_FAULT_OOM. 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>