Re: [PATCH] memcg: update documentation to describe usage_in_bytes

From: KAMEZAWA Hiroyuki
Date: Mon Mar 28 2011 - 05:18:04 EST


On Mon, 28 Mar 2011 09:43:42 +0200
Michal Hocko <mhocko@xxxxxxx> wrote:

> On Mon 28-03-11 13:25:50, Daisuke Nishimura wrote:
> > From: Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx>
> >
> > Update the meaning of *.usage_in_bytes. They doesn't show the actual usage of
> > RSS+Cache(+Swap). They show the res_counter->usage for memory and memory+swap.
>
> Don't we want to add why this is not rss+cache? The reason is really non
> trivial for somebody who is not familiar with the code and with the fact
> that we are heavily caching charges.
>
> >
> > Signed-off-by: Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx>
> > ---
> > Documentation/cgroups/memory.txt | 16 ++++++++++++++--
> > 1 files changed, 14 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt
> > index 7781857..ab7d4c1 100644
> > --- a/Documentation/cgroups/memory.txt
> > +++ b/Documentation/cgroups/memory.txt
> > @@ -52,8 +52,10 @@ Brief summary of control files.
> > tasks # attach a task(thread) and show list of threads
> > cgroup.procs # show list of processes
> > cgroup.event_control # an interface for event_fd()
> > - memory.usage_in_bytes # show current memory(RSS+Cache) usage.
> > - memory.memsw.usage_in_bytes # show current memory+Swap usage
> > + memory.usage_in_bytes # show current res_counter usage for memory
> > + (See 5.5 for details)
> > + memory.memsw.usage_in_bytes # show current res_counter usage for memory+Swap
> > + (See 5.5 for details)
> > memory.limit_in_bytes # set/show limit of memory usage
> > memory.memsw.limit_in_bytes # set/show limit of memory+Swap usage
> > memory.failcnt # show the number of memory usage hits limits
> > @@ -453,6 +455,16 @@ memory under it will be reclaimed.
> > You can reset failcnt by writing 0 to failcnt file.
> > # echo 0 > .../memory.failcnt
> >
> > +5.5 usage_in_bytes
> > +
> > +As described in 2.1, memory cgroup uses res_counter for tracking and limiting
> > +the memory usage. memory.usage_in_bytes shows the current res_counter usage for
> > +memory, and DOESN'T show a actual usage of RSS and Cache. It is usually bigger
> > +than the actual usage for a performance improvement reason.
>
> Isn't an explicit mention about caching charges better?
>

It's difficult to distinguish which is spec. and which is implemnation details...

My one here ;)
==
5.5 usage_in_bytes

For efficiency, as other kernel components, memory cgroup uses some optimization to
avoid unnecessary cacheline false sharing. usage_in_bytes is affected by the
method and doesn't show 'exact' value of usage, it's an fuzz value for efficient
access. (Of course, when necessary, it's synchronized.)
In usual, the value (RSS+CACHE) in memory.stat shows more exact value. IOW,
usage_in_bytes is less exact than memory.stat. The error will be larger on the larger
hardwares which have many cpus and tasks.
==

Hmm ?

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/