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. -- 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>