On Tue, 23 Feb 2010 18:26:17 -0800 (PST) David Rientjes <rientjes@xxxxxxxxxx> wrote: > On Wed, 24 Feb 2010, KAMEZAWA Hiroyuki wrote: > > > > > > This allows us to hijack the TIF_MEMDIE bit to detect when there is a > > > > > parallel pagefault oom killing when the oom killer hasn't necessarily been > > > > > invoked to kill a system-wide task (it's simply killing current, by > > > > > default, and giving it access to memory reserves). Then, we can change > > > > > out_of_memory(), which also now handles memcg oom conditions, to always > > > > > scan the tasklist first (including for mempolicy and cpuset constrained > > > > > ooms), check for any candidates that have TIF_MEMDIE, and return > > > > > ERR_PTR(-1UL) if so. That catches the parallel pagefault oom conditions > > > > > from needlessly killing memcg tasks. panic_on_oom would only panic after > > > > > the tasklist scan has completed and returned != ERR_PTR(-1UL), meaning > > > > > pagefault ooms are exempt from that sysctl. > > > > > > > > > Sorry, I see your concern but I'd like not to do clean-up and bug-fix at > > > > the same time. > > > > > > > > I think clean up after fix is easy in this case. > > > > > > > > > > If you develop on top of my oom killer rewrite, pagefault ooms already > > > attempt to kill current first and then defer back to killing another task > > > if current is unkillable. > > > > After my fix, page_fault_out_of_memory is never called. (because memcg doesn't > > return needless failure.) > > > > Of course it's called, it's called from the pagefault handler whenever we > return VM_FAULT_OOM. Whenever that happens, we'd needlessly panic the > machine for panic_on_oom if we didn't do the tasklist scan and check for > eligible tasks with TIF_MEMDIE set because it prefers to kill current > first in pagefault conditions without consideration given to the sysctl. > pagefault_out_of_memory() has changed radically with my rewrite, so I'd > encourage you to develop on top of that where I've completely removed > mem_cgroup_oom_called() and memcg->last_oom_jiffies already because > they're nonsense. > > My patches are available from > http://www.kernel.org/pub/linux/kernel/people/rientjes/oom-killer-rewrite > I do by myself. Bye. -Kame > Thanks. > -- 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>