Re: [PATCH 1/2][BUGFIX] oom: remove totalpage normalization fromoom_badness()

From: KAMEZAWA Hiroyuki
Date: Wed Aug 25 2010 - 21:16:56 EST


On Wed, 25 Aug 2010 17:52:06 -0700 (PDT)
David Rientjes <rientjes@xxxxxxxxxx> wrote:

> On Thu, 26 Aug 2010, KAMEZAWA Hiroyuki wrote:
>
> > I'm now trying to write a userspace tool to calculate this, for me.
> > Then, could you update documentation ?
> > ==
> > 3.2 /proc/<pid>/oom_score - Display current oom-killer score
> > -------------------------------------------------------------
> >
> > This file can be used to check the current score used by the oom-killer is for
> > any given <pid>. Use it together with /proc/<pid>/oom_adj to tune which
> > process should be killed in an out-of-memory situation.
> > ==
> >
>
> You'll want to look at section 3.1 of Documentation/filesystems/proc.txt,
> which describes /proc/pid/oom_score_adj, not 3.2.
>
> > add a some documentation like:
> > ==
> > (For system monitoring tool developpers, not for usual users.)
> > oom_score calculation is implemnentation dependent and can be modified without
> > any caution. But current logic is
> >
> > oom_score = ((proc's rss + proc's swap) / (available ram + swap)) + oom_score_adj
> >
>
> I'd hesitate to state the formula outside of the implementation and
> instead focus on the semantics of oom_score_adj (as a proportion of
> available memory compared to other tasks), which I tried doing in section
> 3.1. Then, the userspace tool only need be concerned about the units of
> oom_score_adj rather than whether rss, swap, or later extentions such as
> shm are added.
>
Hmm. I'll add a text like following to cgroup/memory.txt. O.K. ?

==
Notes on oom_score and oom_score_adj.

oom_score is calculated as
oom_score = (taks's proportion of memory) + oom_score_adj.

Then, when you use oom_score_adj to control the order of priority of oom,
you should know about the amount of memory you can use.
So, an approximate oom_score under memcg can be

memcg_oom_score = (oom_score - oom_score_adj) * system_memory/memcg's limit
+ oom_score_adj.

And yes, this can be affected by hierarchy control of memcg and calculation
will be more complicated. See, oom_disable feature also.
==

Thanks,
-Kame












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