lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.00.1002231818540.9613@chino.kir.corp.google.com>
Date:	Tue, 23 Feb 2010 18:26:17 -0800 (PST)
From:	David Rientjes <rientjes@...gle.com>
To:	KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>
cc:	Daisuke Nishimura <nishimura@....nes.nec.co.jp>,
	Balbir Singh <balbir@...ux.vnet.ibm.com>, linux-mm@...ck.org,
	linux-kernel@...r.kernel.org
Subject: Re: [RFC][PATCH] memcg: page fault oom improvement v2

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

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ