Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1336627

Re: [PATCH] mm: add MM_SWAPENTS and page table when calculate tasksize in lowmem_scan()

From Michal Hocko <mhocko@kernel.org>
Newsgroups linux.kernel
Subject Re: [PATCH] mm: add MM_SWAPENTS and page table when calculate tasksize in lowmem_scan()
Date 2016-02-17 19:20 +0100
Message-ID <r3eRI-1IR-27@gated-at.bofh.it> (permalink)
References <r2KgW-611-21@gated-at.bofh.it> <r2RLs-2yT-29@gated-at.bofh.it> <r2YjU-6VH-9@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue 16-02-16 16:35:39, David Rientjes wrote:
> On Tue, 16 Feb 2016, Greg Kroah-Hartman wrote:
> 
> > On Tue, Feb 16, 2016 at 05:37:05PM +0800, Xishi Qiu wrote:
> > > Currently tasksize in lowmem_scan() only calculate rss, and not include swap.
> > > But usually smart phones enable zram, so swap space actually use ram.
> > 
> > Yes, but does that matter for this type of calculation?  I need an ack
> > from the android team before I could ever take such a core change to
> > this code...
> > 
> 
> The calculation proposed in this patch is the same as the generic oom 
> killer, it's an estimate of the amount of memory that will be freed if it 
> is killed and can exit.  This is better than simply get_mm_rss().
> 
> However, I think we seriously need to re-consider the implementation of 
> the lowmem killer entirely.  It currently abuses the use of TIF_MEMDIE, 
> which should ideally only be set for one thread on the system since it 
> allows unbounded access to global memory reserves.
> 
> It also abuses the user-visible /proc/self/oom_score_adj tunable: this 
> tunable is used by the generic oom killer to bias or discount a proportion 
> of memory from a process's usage.  This is the only supported semantic of 
> the tunable.  The lowmem killer uses it as a strict prioritization, so any 
> process with oom_score_adj higher than another process is preferred for 
> kill, REGARDLESS of memory usage.  This leads to priority inversion, the 
> user is unable to always define the same process to be killed by the 
> generic oom killer and the lowmem killer.  This is what happens when a 
> tunable with a very clear and defined purpose is used for other reasons.
> 
> I'd seriously consider not accepting any additional hacks on top of this 
> code until the implementation is rewritten.

Fully agreed!

-- 
Michal Hocko
SUSE Labs

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] mm: add MM_SWAPENTS and page table when calculate tasksize  in lowmem_scan() Xishi Qiu <qiuxishi@huawei.com> - 2016-02-16 10:40 +0100
  Re: [PATCH] mm: add MM_SWAPENTS and page table when calculate  tasksize in lowmem_scan() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-02-16 18:40 +0100
    Re: [PATCH] mm: add MM_SWAPENTS and page table when calculate tasksize  in lowmem_scan() David Rientjes <rientjes@google.com> - 2016-02-17 01:40 +0100
      Re: [PATCH] mm: add MM_SWAPENTS and page table when calculate tasksize  in lowmem_scan() Xishi Qiu <qiuxishi@huawei.com> - 2016-02-17 09:50 +0100
        Re: [PATCH] mm: add MM_SWAPENTS and page table when calculate tasksize  in lowmem_scan() David Rientjes <rientjes@google.com> - 2016-02-17 23:50 +0100
      Re: [PATCH] mm: add MM_SWAPENTS and page table when calculate  tasksize in lowmem_scan() Michal Hocko <mhocko@kernel.org> - 2016-02-17 19:20 +0100
      Re: [PATCH] mm: add MM_SWAPENTS and page table when calculate tasksize  in lowmem_scan() Xishi Qiu <qiuxishi@huawei.com> - 2016-02-18 08:00 +0100
      Re: [PATCH] mm: add MM_SWAPENTS and page table when calculate tasksize  in lowmem_scan() Xishi Qiu <qiuxishi@huawei.com> - 2016-02-18 11:30 +0100

csiph-web