Messages in this thread | | | Date | Wed, 24 Feb 2010 10:48:39 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: [RFC][PATCH] memcg: page fault oom improvement v2 |
| |
On Tue, 23 Feb 2010 17:42:33 -0800 (PST) David Rientjes <rientjes@google.com> 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.)
Then, that's not point in this thread.
Thanks, -Kame
| |