linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: David Rientjes <rientjes@google.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Nick Piggin <npiggin@suse.de>, Oleg Nesterov <oleg@redhat.com>,
	Balbir Singh <balbir@in.ibm.com>,
	linux-mm@kvack.org
Subject: Re: [patch -mm 1/2] oom: badness heuristic rewrite
Date: Mon, 2 Aug 2010 17:27:13 -0700 (PDT)	[thread overview]
Message-ID: <alpine.DEB.2.00.1008021713310.9569@chino.kir.corp.google.com> (raw)
In-Reply-To: <20100803090058.48c0a0c9.kamezawa.hiroyu@jp.fujitsu.com>

On Tue, 3 Aug 2010, KAMEZAWA Hiroyuki wrote:

> One reason I poitned out is that this new parameter is hard to use for admins and
> library writers. 
>   old oom_adj was defined as an parameter works as 
> 		(memory usage of app)/oom_adj.

Where are you getting this definition from?

Disregarding all the other small adjustments in the old heuristic, a 
reduced version of the formula was mm->total_vm << oom_adj.  It's a 
shift, not a divide.  That has no sensible meaning.

>   new oom_score_adj was define as
> 		(memory usage of app * oom_score_adj)/ system_memory
> 

No, it's (rss + swap + oom_score_adj) / bound memory.  It's an addition, 
not a multiplication, and it's a proportion of memory the application is 
bound to, not the entire system (it could be constrained by cpuset, 
mempolicy, or memcg).

> Then, an applications' oom_score on a host is quite different from on the other
> host. This operation is very new rather than a simple interface updates.
> This opinion was rejected.
> 

It wasn't rejected, I responded to your comment and you never wrote back.  
The idea 

> Anyway, I believe the value other than OOM_DISABLE is useless,

You're right in that OOM_DISABLE fulfills may typical use cases to simply 
protect a task by making it immune to the oom killer.  But there are other 
use cases for the oom killer that you're perhaps not using where a 
sensible userspace tunable does make a difference: the goal of the 
heuristic is always to kill the task consuming the most amount of memory 
to avoid killing tons of applications for subsequent page allocations.  We 
do run important tasks that consume lots of memory, though, and the kernel 
can't possibly know about that importance.  So although you may never use 
a positive oom_score_adj, although others will, you probably can find a 
use case for subtracting a memory quantity from a known memory hogging 
task that you consider to be vital in an effort to disregard that quantity 
from the score.  I'm sure you'll agree it's a much more powerful (and 
fine-grained) interface than oom_adj.

> I have no concerns. I'll use memcg if I want to control this kind of things.
> 

That would work if you want to setup individual memcgs for every 
application on your system, know what sane limits are for each one, and 
want to incur the significant memory expense of enabling 
CONFIG_CGROUP_MEM_RES_CTLR for its metadata.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2010-08-03  0:24 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-17 19:16 David Rientjes
2010-07-17 19:16 ` [patch -mm 2/2] oom: deprecate oom_adj tunable David Rientjes
2010-07-29 23:08 ` [patch -mm 1/2] oom: badness heuristic rewrite Andrew Morton
2010-07-30  0:12   ` KOSAKI Motohiro
2010-07-30  1:38     ` Andrew Morton
2010-07-30 11:02       ` KOSAKI Motohiro
2010-07-30 20:14         ` David Rientjes
2010-08-02 20:43         ` Andrew Morton
2010-08-03  0:00           ` KAMEZAWA Hiroyuki
2010-08-03  0:27             ` David Rientjes [this message]
2010-08-03  0:36               ` KAMEZAWA Hiroyuki
2010-08-03  1:02                 ` David Rientjes
2010-08-03  1:08                   ` KAMEZAWA Hiroyuki
2010-08-03  1:24                     ` KAMEZAWA Hiroyuki
2010-08-03  1:52                       ` David Rientjes
2010-08-03  2:05                         ` KAMEZAWA Hiroyuki
2010-08-03  3:05                           ` David Rientjes
2010-08-03  3:11                             ` KAMEZAWA Hiroyuki
2010-08-03  4:20                               ` David Rientjes
2010-08-03  4:32                                 ` KAMEZAWA Hiroyuki
2010-08-03  7:23                                   ` David Rientjes
2010-08-03  7:21                                     ` KAMEZAWA Hiroyuki
2010-08-03  7:27                                       ` KAMEZAWA Hiroyuki
2010-08-03 20:43                                         ` David Rientjes
2010-08-03  1:50                     ` David Rientjes
2010-08-03  1:50                       ` KAMEZAWA Hiroyuki
2010-08-03  6:00           ` KOSAKI Motohiro
2010-08-03  7:16             ` David Rientjes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.00.1008021713310.9569@chino.kir.corp.google.com \
    --to=rientjes@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=balbir@in.ibm.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-mm@kvack.org \
    --cc=npiggin@suse.de \
    --cc=oleg@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox