diff for duplicates of <20120111003020.GD24386@cmpxchg.org> diff --git a/a/1.txt b/N1/1.txt index be48a33..a0ac87d 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -2,7 +2,7 @@ On Tue, Jan 10, 2012 at 03:54:05PM -0800, Ying Han wrote: > Thank you for the patch and the stats looks reasonable to me, few > questions as below: > -> On Tue, Jan 10, 2012 at 7:02 AM, Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org> wrote: +> On Tue, Jan 10, 2012 at 7:02 AM, Johannes Weiner <hannes@cmpxchg.org> wrote: > > With the single per-zone LRU gone and global reclaim scanning > > individual memcgs, it's straight-forward to collect meaningful and > > accurate per-memcg reclaim statistics. @@ -37,9 +37,9 @@ prefix. > > pgscan > > -> > Number of pages reclaimed/scanned from that memcg due to its own -> > hard limit (or physical limit in case of the root memcg) by the -> > allocating task. +> > Number of pages reclaimed/scanned from that memcg due to its own +> > hard limit (or physical limit in case of the root memcg) by the +> > allocating task. > > > > kswapd_pgreclaim > > kswapd_pgscan @@ -48,10 +48,10 @@ prefix. > "pgsteal_kswapd" > "pgscan_kswapd" > -> > Reclaim activity from kswapd due to the memcg's own limit. Only -> > applicable to the root memcg for now since kswapd is only triggered -> > by physical limits, but kswapd-style reclaim based on memcg hard -> > limits is being developped. +> > Reclaim activity from kswapd due to the memcg's own limit. Only +> > applicable to the root memcg for now since kswapd is only triggered +> > by physical limits, but kswapd-style reclaim based on memcg hard +> > limits is being developped. > > > > hierarchy_pgreclaim > > hierarchy_pgscan @@ -87,37 +87,37 @@ this? I mean, at least my naming conforms to ONE of the standards in /proc/vmstat, right? ;-) > > @@ -91,12 +91,23 @@ enum mem_cgroup_stat_index { -> > MEM_CGROUP_STAT_NSTATS, -> > }; +> > MEM_CGROUP_STAT_NSTATS, +> > }; > > > > +#define MEM_CGROUP_EVENTS_KSWAPD 2 > > +#define MEM_CGROUP_EVENTS_HIERARCHY 4 > > + -> > enum mem_cgroup_events_index { -> > MEM_CGROUP_EVENTS_PGPGIN, /* # of pages paged in */ -> > MEM_CGROUP_EVENTS_PGPGOUT, /* # of pages paged out */ -> > MEM_CGROUP_EVENTS_COUNT, /* # of pages paged in/out */ -> > MEM_CGROUP_EVENTS_PGFAULT, /* # of page-faults */ -> > MEM_CGROUP_EVENTS_PGMAJFAULT, /* # of major page-faults */ -> > + MEM_CGROUP_EVENTS_PGRECLAIM, -> > + MEM_CGROUP_EVENTS_PGSCAN, -> > + MEM_CGROUP_EVENTS_KSWAPD_PGRECLAIM, -> > + MEM_CGROUP_EVENTS_KSWAPD_PGSCAN, -> > + MEM_CGROUP_EVENTS_HIERARCHY_PGRECLAIM, -> > + MEM_CGROUP_EVENTS_HIERARCHY_PGSCAN, -> > + MEM_CGROUP_EVENTS_HIERARCHY_KSWAPD_PGRECLAIM, -> > + MEM_CGROUP_EVENTS_HIERARCHY_KSWAPD_PGSCAN, +> > enum mem_cgroup_events_index { +> > MEM_CGROUP_EVENTS_PGPGIN, /* # of pages paged in */ +> > MEM_CGROUP_EVENTS_PGPGOUT, /* # of pages paged out */ +> > MEM_CGROUP_EVENTS_COUNT, /* # of pages paged in/out */ +> > MEM_CGROUP_EVENTS_PGFAULT, /* # of page-faults */ +> > MEM_CGROUP_EVENTS_PGMAJFAULT, /* # of major page-faults */ +> > + MEM_CGROUP_EVENTS_PGRECLAIM, +> > + MEM_CGROUP_EVENTS_PGSCAN, +> > + MEM_CGROUP_EVENTS_KSWAPD_PGRECLAIM, +> > + MEM_CGROUP_EVENTS_KSWAPD_PGSCAN, +> > + MEM_CGROUP_EVENTS_HIERARCHY_PGRECLAIM, +> > + MEM_CGROUP_EVENTS_HIERARCHY_PGSCAN, +> > + MEM_CGROUP_EVENTS_HIERARCHY_KSWAPD_PGRECLAIM, +> > + MEM_CGROUP_EVENTS_HIERARCHY_KSWAPD_PGSCAN, > > missing comment here? As if the lines weren't long enough already ;-) I'll add some. -> > MEM_CGROUP_EVENTS_NSTATS, -> > }; -> > /* +> > MEM_CGROUP_EVENTS_NSTATS, +> > }; +> > /* > > @@ -889,6 +900,38 @@ static inline bool mem_cgroup_is_root(struct mem_cgroup *memcg) -> > return (memcg == root_mem_cgroup); -> > } +> > return (memcg == root_mem_cgroup); +> > } > > > > +/** > > + * mem_cgroup_account_reclaim - update per-memcg reclaim statistics @@ -128,20 +128,20 @@ As if the lines weren't long enough already ;-) I'll add some. > > + * @kswapd: whether reclaiming task is kswapd or allocator itself > > + */ > > +void mem_cgroup_account_reclaim(struct mem_cgroup *root, -> > + struct mem_cgroup *memcg, -> > + unsigned long nr_reclaimed, -> > + unsigned long nr_scanned, -> > + bool kswapd) +> > + struct mem_cgroup *memcg, +> > + unsigned long nr_reclaimed, +> > + unsigned long nr_scanned, +> > + bool kswapd) > > +{ -> > + unsigned int offset = 0; +> > + unsigned int offset = 0; > > + -> > + if (!root) -> > + root = root_mem_cgroup; +> > + if (!root) +> > + root = root_mem_cgroup; > > + -> > + if (kswapd) -> > + offset += MEM_CGROUP_EVENTS_KSWAPD; -> > + if (root != memcg) -> > + offset += MEM_CGROUP_EVENTS_HIERARCHY; +> > + if (kswapd) +> > + offset += MEM_CGROUP_EVENTS_KSWAPD; +> > + if (root != memcg) +> > + offset += MEM_CGROUP_EVENTS_HIERARCHY; > > Just to be clear, here root cgroup has hierarchy_* stats always 0 ? @@ -163,3 +163,10 @@ long. Any other ideas for great names for parameters that designate a hierarchy root and a memcg in that hierarchy? + +-- +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/ . +Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ +Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> diff --git a/a/content_digest b/N1/content_digest index 4042405..295bd18 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,25 +1,24 @@ "ref\01326207772-16762-1-git-send-email-hannes@cmpxchg.org\0" "ref\01326207772-16762-2-git-send-email-hannes@cmpxchg.org\0" "ref\0CALWz4izbTw4+7zbfiED9Lx=6RwiqxE11g5-fNRHTh=mcP=vQ2Q@mail.gmail.com\0" - "ref\0CALWz4izbTw4+7zbfiED9Lx=6RwiqxE11g5-fNRHTh=mcP=vQ2Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org\0" - "From\0Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>\0" + "From\0Johannes Weiner <hannes@cmpxchg.org>\0" "Subject\0Re: [patch 1/2] mm: memcg: per-memcg reclaim statistics\0" "Date\0Wed, 11 Jan 2012 01:30:20 +0100\0" - "To\0Ying Han <yinghan-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>\0" - "Cc\0Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>" - Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org> - KAMEZAWA Hiroyuki <kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org> - Balbir Singh <bsingharora-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org - " linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org\0" + "To\0Ying Han <yinghan@google.com>\0" + "Cc\0Andrew Morton <akpm@linux-foundation.org>" + Michal Hocko <mhocko@suse.cz> + KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> + Balbir Singh <bsingharora@gmail.com> + cgroups@vger.kernel.org + linux-mm@kvack.org + " linux-kernel@vger.kernel.org\0" "\00:1\0" "b\0" "On Tue, Jan 10, 2012 at 03:54:05PM -0800, Ying Han wrote:\n" "> Thank you for the patch and the stats looks reasonable to me, few\n" "> questions as below:\n" "> \n" - "> On Tue, Jan 10, 2012 at 7:02 AM, Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org> wrote:\n" + "> On Tue, Jan 10, 2012 at 7:02 AM, Johannes Weiner <hannes@cmpxchg.org> wrote:\n" "> > With the single per-zone LRU gone and global reclaim scanning\n" "> > individual memcgs, it's straight-forward to collect meaningful and\n" "> > accurate per-memcg reclaim statistics.\n" @@ -54,9 +53,9 @@ "\n" "> > pgscan\n" "> >\n" - "> > \302\240Number of pages reclaimed/scanned from that memcg due to its own\n" - "> > \302\240hard limit (or physical limit in case of the root memcg) by the\n" - "> > \302\240allocating task.\n" + "> > Number of pages reclaimed/scanned from that memcg due to its own\n" + "> > hard limit (or physical limit in case of the root memcg) by the\n" + "> > allocating task.\n" "> >\n" "> > kswapd_pgreclaim\n" "> > kswapd_pgscan\n" @@ -65,10 +64,10 @@ "> \"pgsteal_kswapd\"\n" "> \"pgscan_kswapd\"\n" "> \n" - "> > \302\240Reclaim activity from kswapd due to the memcg's own limit. \302\240Only\n" - "> > \302\240applicable to the root memcg for now since kswapd is only triggered\n" - "> > \302\240by physical limits, but kswapd-style reclaim based on memcg hard\n" - "> > \302\240limits is being developped.\n" + "> > Reclaim activity from kswapd due to the memcg's own limit. Only\n" + "> > applicable to the root memcg for now since kswapd is only triggered\n" + "> > by physical limits, but kswapd-style reclaim based on memcg hard\n" + "> > limits is being developped.\n" "> >\n" "> > hierarchy_pgreclaim\n" "> > hierarchy_pgscan\n" @@ -104,37 +103,37 @@ "/proc/vmstat, right? ;-)\n" "\n" "> > @@ -91,12 +91,23 @@ enum mem_cgroup_stat_index {\n" - "> > \302\240 \302\240 \302\240 \302\240MEM_CGROUP_STAT_NSTATS,\n" - "> > \302\240};\n" + "> > MEM_CGROUP_STAT_NSTATS,\n" + "> > };\n" "> >\n" "> > +#define MEM_CGROUP_EVENTS_KSWAPD 2\n" "> > +#define MEM_CGROUP_EVENTS_HIERARCHY 4\n" "> > +\n" - "> > \302\240enum mem_cgroup_events_index {\n" - "> > \302\240 \302\240 \302\240 \302\240MEM_CGROUP_EVENTS_PGPGIN, \302\240 \302\240 \302\240 /* # of pages paged in */\n" - "> > \302\240 \302\240 \302\240 \302\240MEM_CGROUP_EVENTS_PGPGOUT, \302\240 \302\240 \302\240/* # of pages paged out */\n" - "> > \302\240 \302\240 \302\240 \302\240MEM_CGROUP_EVENTS_COUNT, \302\240 \302\240 \302\240 \302\240/* # of pages paged in/out */\n" - "> > \302\240 \302\240 \302\240 \302\240MEM_CGROUP_EVENTS_PGFAULT, \302\240 \302\240 \302\240/* # of page-faults */\n" - "> > \302\240 \302\240 \302\240 \302\240MEM_CGROUP_EVENTS_PGMAJFAULT, \302\240 /* # of major page-faults */\n" - "> > + \302\240 \302\240 \302\240 MEM_CGROUP_EVENTS_PGRECLAIM,\n" - "> > + \302\240 \302\240 \302\240 MEM_CGROUP_EVENTS_PGSCAN,\n" - "> > + \302\240 \302\240 \302\240 MEM_CGROUP_EVENTS_KSWAPD_PGRECLAIM,\n" - "> > + \302\240 \302\240 \302\240 MEM_CGROUP_EVENTS_KSWAPD_PGSCAN,\n" - "> > + \302\240 \302\240 \302\240 MEM_CGROUP_EVENTS_HIERARCHY_PGRECLAIM,\n" - "> > + \302\240 \302\240 \302\240 MEM_CGROUP_EVENTS_HIERARCHY_PGSCAN,\n" - "> > + \302\240 \302\240 \302\240 MEM_CGROUP_EVENTS_HIERARCHY_KSWAPD_PGRECLAIM,\n" - "> > + \302\240 \302\240 \302\240 MEM_CGROUP_EVENTS_HIERARCHY_KSWAPD_PGSCAN,\n" + "> > enum mem_cgroup_events_index {\n" + "> > MEM_CGROUP_EVENTS_PGPGIN, /* # of pages paged in */\n" + "> > MEM_CGROUP_EVENTS_PGPGOUT, /* # of pages paged out */\n" + "> > MEM_CGROUP_EVENTS_COUNT, /* # of pages paged in/out */\n" + "> > MEM_CGROUP_EVENTS_PGFAULT, /* # of page-faults */\n" + "> > MEM_CGROUP_EVENTS_PGMAJFAULT, /* # of major page-faults */\n" + "> > + MEM_CGROUP_EVENTS_PGRECLAIM,\n" + "> > + MEM_CGROUP_EVENTS_PGSCAN,\n" + "> > + MEM_CGROUP_EVENTS_KSWAPD_PGRECLAIM,\n" + "> > + MEM_CGROUP_EVENTS_KSWAPD_PGSCAN,\n" + "> > + MEM_CGROUP_EVENTS_HIERARCHY_PGRECLAIM,\n" + "> > + MEM_CGROUP_EVENTS_HIERARCHY_PGSCAN,\n" + "> > + MEM_CGROUP_EVENTS_HIERARCHY_KSWAPD_PGRECLAIM,\n" + "> > + MEM_CGROUP_EVENTS_HIERARCHY_KSWAPD_PGSCAN,\n" "> \n" "> missing comment here?\n" "\n" "As if the lines weren't long enough already ;-) I'll add some.\n" "\n" - "> > \302\240 \302\240 \302\240 \302\240MEM_CGROUP_EVENTS_NSTATS,\n" - "> > \302\240};\n" - "> > \302\240/*\n" + "> > MEM_CGROUP_EVENTS_NSTATS,\n" + "> > };\n" + "> > /*\n" "> > @@ -889,6 +900,38 @@ static inline bool mem_cgroup_is_root(struct mem_cgroup *memcg)\n" - "> > \302\240 \302\240 \302\240 \302\240return (memcg == root_mem_cgroup);\n" - "> > \302\240}\n" + "> > return (memcg == root_mem_cgroup);\n" + "> > }\n" "> >\n" "> > +/**\n" "> > + * mem_cgroup_account_reclaim - update per-memcg reclaim statistics\n" @@ -145,20 +144,20 @@ "> > + * @kswapd: whether reclaiming task is kswapd or allocator itself\n" "> > + */\n" "> > +void mem_cgroup_account_reclaim(struct mem_cgroup *root,\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 struct mem_cgroup *memcg,\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 unsigned long nr_reclaimed,\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 unsigned long nr_scanned,\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 bool kswapd)\n" + "> > + struct mem_cgroup *memcg,\n" + "> > + unsigned long nr_reclaimed,\n" + "> > + unsigned long nr_scanned,\n" + "> > + bool kswapd)\n" "> > +{\n" - "> > + \302\240 \302\240 \302\240 unsigned int offset = 0;\n" + "> > + unsigned int offset = 0;\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 if (!root)\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 root = root_mem_cgroup;\n" + "> > + if (!root)\n" + "> > + root = root_mem_cgroup;\n" "> > +\n" - "> > + \302\240 \302\240 \302\240 if (kswapd)\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 offset += MEM_CGROUP_EVENTS_KSWAPD;\n" - "> > + \302\240 \302\240 \302\240 if (root != memcg)\n" - "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 offset += MEM_CGROUP_EVENTS_HIERARCHY;\n" + "> > + if (kswapd)\n" + "> > + offset += MEM_CGROUP_EVENTS_KSWAPD;\n" + "> > + if (root != memcg)\n" + "> > + offset += MEM_CGROUP_EVENTS_HIERARCHY;\n" "> \n" "> Just to be clear, here root cgroup has hierarchy_* stats always 0 ?\n" "\n" @@ -179,6 +178,13 @@ "long.\n" "\n" "Any other ideas for great names for parameters that designate a\n" - hierarchy root and a memcg in that hierarchy? + "hierarchy root and a memcg in that hierarchy?\n" + "\n" + "--\n" + "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n" + "the body to majordomo@kvack.org. For more info on Linux MM,\n" + "see: http://www.linux-mm.org/ .\n" + "Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/\n" + "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>" -52c2f41c83046b62592778024318bcf41af26f2f147a03a02596798444c3c246 +76cc5ea57fb6270f3d017a4b57caec151a340aeeac231744e36f797a24e2664c
diff --git a/a/1.txt b/N2/1.txt index be48a33..7ea96ec 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -2,7 +2,7 @@ On Tue, Jan 10, 2012 at 03:54:05PM -0800, Ying Han wrote: > Thank you for the patch and the stats looks reasonable to me, few > questions as below: > -> On Tue, Jan 10, 2012 at 7:02 AM, Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org> wrote: +> On Tue, Jan 10, 2012 at 7:02 AM, Johannes Weiner <hannes@cmpxchg.org> wrote: > > With the single per-zone LRU gone and global reclaim scanning > > individual memcgs, it's straight-forward to collect meaningful and > > accurate per-memcg reclaim statistics. diff --git a/a/content_digest b/N2/content_digest index 4042405..c4bb4bf 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,25 +1,24 @@ "ref\01326207772-16762-1-git-send-email-hannes@cmpxchg.org\0" "ref\01326207772-16762-2-git-send-email-hannes@cmpxchg.org\0" "ref\0CALWz4izbTw4+7zbfiED9Lx=6RwiqxE11g5-fNRHTh=mcP=vQ2Q@mail.gmail.com\0" - "ref\0CALWz4izbTw4+7zbfiED9Lx=6RwiqxE11g5-fNRHTh=mcP=vQ2Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org\0" - "From\0Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>\0" + "From\0Johannes Weiner <hannes@cmpxchg.org>\0" "Subject\0Re: [patch 1/2] mm: memcg: per-memcg reclaim statistics\0" "Date\0Wed, 11 Jan 2012 01:30:20 +0100\0" - "To\0Ying Han <yinghan-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>\0" - "Cc\0Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>" - Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org> - KAMEZAWA Hiroyuki <kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org> - Balbir Singh <bsingharora-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> - cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org - linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org - " linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org\0" + "To\0Ying Han <yinghan@google.com>\0" + "Cc\0Andrew Morton <akpm@linux-foundation.org>" + Michal Hocko <mhocko@suse.cz> + KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> + Balbir Singh <bsingharora@gmail.com> + cgroups@vger.kernel.org + linux-mm@kvack.org + " linux-kernel@vger.kernel.org\0" "\00:1\0" "b\0" "On Tue, Jan 10, 2012 at 03:54:05PM -0800, Ying Han wrote:\n" "> Thank you for the patch and the stats looks reasonable to me, few\n" "> questions as below:\n" "> \n" - "> On Tue, Jan 10, 2012 at 7:02 AM, Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org> wrote:\n" + "> On Tue, Jan 10, 2012 at 7:02 AM, Johannes Weiner <hannes@cmpxchg.org> wrote:\n" "> > With the single per-zone LRU gone and global reclaim scanning\n" "> > individual memcgs, it's straight-forward to collect meaningful and\n" "> > accurate per-memcg reclaim statistics.\n" @@ -181,4 +180,4 @@ "Any other ideas for great names for parameters that designate a\n" hierarchy root and a memcg in that hierarchy? -52c2f41c83046b62592778024318bcf41af26f2f147a03a02596798444c3c246 +8032148fbda76def01bd16ea8d093e4863378be4c280e1014507d6d61372bb72
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.