Re: [PATCH] memcg: drain all stocks for the cgroup before read usage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Sep 05, 2011 at 10:16:07AM +0900, Daisuke Nishimura wrote:
> On Mon, 5 Sep 2011 08:59:13 +0900
> KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:
> 
> > On Sun,  4 Sep 2011 04:15:33 +0300
> > "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx> wrote:
> > 
> > > From: "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>
> > > 
> > > Currently, mem_cgroup_usage() for non-root cgroup returns usage
> > > including stocks.
> > > 
> > > Let's drain all socks before read resource counter value. It makes
> > > memory{,.memcg}.usage_in_bytes and memory.stat consistent.
> > > 
> > > Signed-off-by: Kirill A. Shutemov <kirill@xxxxxxxxxxxxx>
> > 
> > Hmm. This seems costly to me. 
> > 
> > If a user chesk usage_in_bytes in a memcg once per 1sec, 
> > the kernel will call schedule_work on cpus once per 1sec.
> > So, IMHO, I don't like this.
> > 
> I agree.
> 
> We discussed a similar topic on the thread https://lkml.org/lkml/2011/3/18/212.
> And, we added the memory.txt:
> ---
> 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 memory(and swap) usage, it's an fuzz
> value for efficient access. (Of course, when necessary, it's synchronized.)
> If you want to know more exact memory usage, you should use RSS+CACHE(+SWAP)
> value in memory.stat(see 5.2).
> ---

Agree, thanks.

Should we have field 'ram' (or 'memory') for rss+cache in memory.stat?

-- 
 Kirill A. Shutemov

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]