All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
To: Sha Zhengju <handai.szj@gmail.com>
Cc: linux-kernel@vger.kernel.org, cgroups@vger.kernel.org,
	linux-mm@kvack.org, mhocko@suse.cz, akpm@linux-foundation.org,
	gthelen@google.com, fengguang.wu@intel.com,
	glommer@parallels.com, Sha Zhengju <handai.szj@taobao.com>
Subject: Re: [PATCH V3 6/8] memcg: Don't account root_mem_cgroup page statistics
Date: Fri, 28 Dec 2012 10:04:11 +0900	[thread overview]
Message-ID: <50DCF00B.5040100@jp.fujitsu.com> (raw)
In-Reply-To: <1356456447-14740-1-git-send-email-handai.szj@taobao.com>

(2012/12/26 2:27), Sha Zhengju wrote:
> From: Sha Zhengju <handai.szj@taobao.com>
> 
> If memcg is enabled and no non-root memcg exists, all allocated pages
> belongs to root_mem_cgroup and go through root memcg statistics routines
> which brings some overheads. So for the sake of performance, we can give
> up accounting stats of root memcg for MEM_CGROUP_STAT_FILE_MAPPED/FILE_DIRTY
> /WRITEBACK and instead we pay special attention while showing root
> memcg numbers in memcg_stat_show(): as we don't account root memcg stats
> anymore, the root_mem_cgroup->stat numbers are actually 0. But because of
> hierachy, figures of root_mem_cgroup may just represent numbers of pages
> used by its own tasks(not belonging to any other child cgroup). So here we
> fake these root numbers by using stats of global state and all other memcg.
> That is for root memcg:
> 	nr(MEM_CGROUP_STAT_FILE_MAPPED) = global_page_state(NR_FILE_MAPPED) -
>                                sum_of_all_memcg(MEM_CGROUP_STAT_FILE_MAPPED);
> Dirty/Writeback pages accounting are in the similar way.
> 
> Signed-off-by: Sha Zhengju <handai.szj@taobao.com>

isn't it better to use mem_cgroup_is_root() call rather than
direct comparison (memcg == root_mem_cgroup) ?

Anyway, Ack to this approach. 

Thanks,
-Kame

--
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>

WARNING: multiple messages have this Message-ID (diff)
From: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
To: Sha Zhengju <handai.szj@gmail.com>
Cc: linux-kernel@vger.kernel.org, cgroups@vger.kernel.org,
	linux-mm@kvack.org, mhocko@suse.cz, akpm@linux-foundation.org,
	gthelen@google.com, fengguang.wu@intel.com,
	glommer@parallels.com, Sha Zhengju <handai.szj@taobao.com>
Subject: Re: [PATCH V3 6/8] memcg: Don't account root_mem_cgroup page statistics
Date: Fri, 28 Dec 2012 10:04:11 +0900	[thread overview]
Message-ID: <50DCF00B.5040100@jp.fujitsu.com> (raw)
In-Reply-To: <1356456447-14740-1-git-send-email-handai.szj@taobao.com>

(2012/12/26 2:27), Sha Zhengju wrote:
> From: Sha Zhengju <handai.szj@taobao.com>
> 
> If memcg is enabled and no non-root memcg exists, all allocated pages
> belongs to root_mem_cgroup and go through root memcg statistics routines
> which brings some overheads. So for the sake of performance, we can give
> up accounting stats of root memcg for MEM_CGROUP_STAT_FILE_MAPPED/FILE_DIRTY
> /WRITEBACK and instead we pay special attention while showing root
> memcg numbers in memcg_stat_show(): as we don't account root memcg stats
> anymore, the root_mem_cgroup->stat numbers are actually 0. But because of
> hierachy, figures of root_mem_cgroup may just represent numbers of pages
> used by its own tasks(not belonging to any other child cgroup). So here we
> fake these root numbers by using stats of global state and all other memcg.
> That is for root memcg:
> 	nr(MEM_CGROUP_STAT_FILE_MAPPED) = global_page_state(NR_FILE_MAPPED) -
>                                sum_of_all_memcg(MEM_CGROUP_STAT_FILE_MAPPED);
> Dirty/Writeback pages accounting are in the similar way.
> 
> Signed-off-by: Sha Zhengju <handai.szj@taobao.com>

isn't it better to use mem_cgroup_is_root() call rather than
direct comparison (memcg == root_mem_cgroup) ?

Anyway, Ack to this approach. 

Thanks,
-Kame


  reply	other threads:[~2012-12-28  1:04 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-25 17:18 [PATCH V3 0/8] Per-cgroup page stat accounting Sha Zhengju
2012-12-25 17:18 ` Sha Zhengju
2012-12-25 17:20 ` [PATCH V3 1/8] memcg: remove MEMCG_NR_FILE_MAPPED Sha Zhengju
2012-12-25 17:20   ` Sha Zhengju
2012-12-25 17:24 ` [PATCH V3 3/8] use vfs __set_page_dirty interface instead of doing it inside filesystem Sha Zhengju
2012-12-25 17:24   ` Sha Zhengju
     [not found]   ` <1356456261-14579-1-git-send-email-handai.szj-3b8fjiQLQpfQT0dZR+AlfA@public.gmane.org>
2012-12-28  0:41     ` Kamezawa Hiroyuki
2012-12-28  0:41       ` Kamezawa Hiroyuki
2012-12-28  0:41       ` Kamezawa Hiroyuki
2012-12-25 17:26 ` [PATCH V3 4/8] memcg: add per cgroup dirty pages accounting Sha Zhengju
2012-12-25 17:26   ` Sha Zhengju
2013-01-02 10:44   ` Michal Hocko
2013-01-02 10:44     ` Michal Hocko
2013-01-05  4:48     ` Sha Zhengju
2013-01-05  4:48       ` Sha Zhengju
2013-01-06 20:02       ` Hugh Dickins
2013-01-06 20:02         ` Hugh Dickins
     [not found]         ` <alpine.LNX.2.00.1301061135400.29149-fupSdm12i1nKWymIFiNcPA@public.gmane.org>
2013-01-07  7:49           ` Kamezawa Hiroyuki
2013-01-07  7:49             ` Kamezawa Hiroyuki
2013-01-07  7:49             ` Kamezawa Hiroyuki
2013-01-09  5:15             ` Hugh Dickins
2013-01-09  5:15               ` Hugh Dickins
     [not found]               ` <alpine.LNX.2.00.1301082030100.5319-fupSdm12i1nKWymIFiNcPA@public.gmane.org>
2013-01-09  7:24                 ` Kamezawa Hiroyuki
2013-01-09  7:24                   ` Kamezawa Hiroyuki
2013-01-09  7:24                   ` Kamezawa Hiroyuki
2013-01-09 14:35           ` Sha Zhengju
2013-01-09 14:35             ` Sha Zhengju
2013-01-09 14:35             ` Sha Zhengju
     [not found]             ` <CAFj3OHVUx0bZyEGQU_CApVbgz7SrX3BQ+0U5fRV=En800wv+cQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-09 14:47               ` Michal Hocko
2013-01-09 14:47                 ` Michal Hocko
2013-01-09 14:47                 ` Michal Hocko
     [not found]       ` <CAFj3OHXKyMO3gwghiBAmbowvqko-JqLtKroX2kzin1rk=q9tZg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-07  7:25         ` Kamezawa Hiroyuki
2013-01-07  7:25           ` Kamezawa Hiroyuki
2013-01-07  7:25           ` Kamezawa Hiroyuki
     [not found]           ` <50EA7860.6030300-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2013-01-09 15:02             ` Sha Zhengju
2013-01-09 15:02               ` Sha Zhengju
2013-01-09 15:02               ` Sha Zhengju
     [not found]               ` <CAFj3OHXMgRG6u2YoM7y5WuPo2ZNA1yPmKRV29FYj9B6Wj_c6Lw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-10  2:16                 ` Kamezawa Hiroyuki
2013-01-10  2:16                   ` Kamezawa Hiroyuki
2013-01-10  2:16                   ` Kamezawa Hiroyuki
2013-01-10  4:26                   ` Sha Zhengju
2013-01-10  4:26                     ` Sha Zhengju
2013-01-10  4:26                     ` Sha Zhengju
     [not found]                     ` <CAFj3OHW=n22veXzR27qfc+10t-nETU=B78NULPXrEDT1S-KsOw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-10  5:03                       ` Kamezawa Hiroyuki
2013-01-10  5:03                         ` Kamezawa Hiroyuki
2013-01-10  5:03                         ` Kamezawa Hiroyuki
     [not found]                         ` <50EE4B84.5080205-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2013-01-10  8:28                           ` Sha Zhengju
2013-01-10  8:28                             ` Sha Zhengju
2013-01-10  8:28                             ` Sha Zhengju
2013-05-03  9:11     ` Michal Hocko
2013-05-03  9:11       ` Michal Hocko
2013-05-03  9:59       ` Sha Zhengju
2013-05-03  9:59         ` Sha Zhengju
2013-01-06 20:07   ` Greg Thelen
2013-01-06 20:07     ` Greg Thelen
2013-01-06 20:07     ` Greg Thelen
     [not found]     ` <xr93obh2krcr.fsf-aSPv4SP+Du0KgorLzL7FmE7CuiCeIGUxQQ4Iyu8u01E@public.gmane.org>
2013-01-09  9:45       ` Sha Zhengju
2013-01-09  9:45         ` Sha Zhengju
2013-01-09  9:45         ` Sha Zhengju
2012-12-25 17:26 ` [PATCH V3 5/8] memcg: add per cgroup writeback " Sha Zhengju
2012-12-25 17:26   ` Sha Zhengju
2012-12-28  0:52   ` Kamezawa Hiroyuki
2012-12-28  0:52     ` Kamezawa Hiroyuki
     [not found]   ` <1356456409-14701-1-git-send-email-handai.szj-3b8fjiQLQpfQT0dZR+AlfA@public.gmane.org>
2013-01-02 11:15     ` Michal Hocko
2013-01-02 11:15       ` Michal Hocko
2013-01-02 11:15       ` Michal Hocko
2013-01-06 20:07   ` Greg Thelen
2013-01-06 20:07     ` Greg Thelen
2013-01-09  9:08     ` Sha Zhengju
2013-01-09  9:08       ` Sha Zhengju
2012-12-25 17:27 ` [PATCH V3 6/8] memcg: Don't account root_mem_cgroup page statistics Sha Zhengju
2012-12-25 17:27   ` Sha Zhengju
2012-12-28  1:04   ` Kamezawa Hiroyuki [this message]
2012-12-28  1:04     ` Kamezawa Hiroyuki
     [not found]     ` <50DCF00B.5040100-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2013-01-05  7:38       ` Sha Zhengju
2013-01-05  7:38         ` Sha Zhengju
2013-01-05  7:38         ` Sha Zhengju
     [not found]   ` <1356456447-14740-1-git-send-email-handai.szj-3b8fjiQLQpfQT0dZR+AlfA@public.gmane.org>
2013-01-02 12:27     ` Michal Hocko
2013-01-02 12:27       ` Michal Hocko
2013-01-02 12:27       ` Michal Hocko
     [not found]       ` <20130102122712.GE22160-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2013-01-05 10:52         ` Sha Zhengju
2013-01-05 10:52           ` Sha Zhengju
2013-01-05 10:52           ` Sha Zhengju
2013-01-09 12:57           ` Michal Hocko
2013-01-09 12:57             ` Michal Hocko
     [not found] ` <1356455919-14445-1-git-send-email-handai.szj-3b8fjiQLQpfQT0dZR+AlfA@public.gmane.org>
2012-12-25 17:22   ` [PATCH V3 2/8] Make TestSetPageDirty and dirty page accounting in one func Sha Zhengju
2012-12-25 17:22     ` Sha Zhengju
2012-12-25 17:22     ` Sha Zhengju
2012-12-28  0:39     ` Kamezawa Hiroyuki
2012-12-28  0:39       ` Kamezawa Hiroyuki
2013-01-05  2:34       ` Sha Zhengju
2013-01-05  2:34         ` Sha Zhengju
2013-01-02  9:08     ` Michal Hocko
2013-01-02  9:08       ` Michal Hocko
     [not found]       ` <20130102090803.GB22160-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2013-01-05  2:49         ` Sha Zhengju
2013-01-05  2:49           ` Sha Zhengju
2013-01-05  2:49           ` Sha Zhengju
     [not found]           ` <CAFj3OHUCQkqB2+ky9wxFpkNYcn2=6t9Qd7XFf3RBY0F4Wxyqcg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-01-05 10:45             ` Michal Hocko
2013-01-05 10:45               ` Michal Hocko
2013-01-05 10:45               ` Michal Hocko
2012-12-25 17:27   ` [PATCH V3 7/8] memcg: disable memcg page stat accounting code when not in use Sha Zhengju
2012-12-25 17:27     ` Sha Zhengju
2012-12-25 17:27     ` Sha Zhengju
     [not found]     ` <1356456477-14780-1-git-send-email-handai.szj-3b8fjiQLQpfQT0dZR+AlfA@public.gmane.org>
2012-12-28  1:06       ` Kamezawa Hiroyuki
2012-12-28  1:06         ` Kamezawa Hiroyuki
2012-12-28  1:06         ` Kamezawa Hiroyuki
2012-12-28  1:45     ` Kamezawa Hiroyuki
2012-12-28  1:45       ` Kamezawa Hiroyuki
2013-01-05 11:06       ` Sha Zhengju
2013-01-05 11:06         ` Sha Zhengju
2013-01-02 13:35     ` Michal Hocko
2013-01-02 13:35       ` Michal Hocko
2012-12-25 17:28   ` [PATCH V3 8/8] memcg: Document cgroup dirty/writeback memory statistics Sha Zhengju
2012-12-25 17:28     ` Sha Zhengju
2012-12-25 17:28     ` Sha Zhengju
     [not found]     ` <1356456501-14818-1-git-send-email-handai.szj-3b8fjiQLQpfQT0dZR+AlfA@public.gmane.org>
2012-12-28  1:10       ` Kamezawa Hiroyuki
2012-12-28  1:10         ` Kamezawa Hiroyuki
2012-12-28  1:10         ` Kamezawa Hiroyuki
     [not found]         ` <50DCF185.7050408-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2013-01-06  2:55           ` Sha Zhengju
2013-01-06  2:55             ` Sha Zhengju
2013-01-06  2:55             ` Sha Zhengju
2013-01-02 13:36       ` Michal Hocko
2013-01-02 13:36         ` Michal Hocko
2013-01-02 13:36         ` Michal Hocko

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=50DCF00B.5040100@jp.fujitsu.com \
    --to=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=akpm@linux-foundation.org \
    --cc=cgroups@vger.kernel.org \
    --cc=fengguang.wu@intel.com \
    --cc=glommer@parallels.com \
    --cc=gthelen@google.com \
    --cc=handai.szj@gmail.com \
    --cc=handai.szj@taobao.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.cz \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.