From: Michal Hocko <mhocko@kernel.org>
To: Johannes Weiner <hannes@cmpxchg.org>
Cc: Tejun Heo <tj@kernel.org>,
vdavydov.dev@gmail.com, guro@fb.com, riel@surriel.com,
akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
kernel-team@fb.com, cgroups@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH 1/3] mm: memcontrol: Use cgroup_rstat for event accounting
Date: Wed, 4 Apr 2018 16:34:47 +0200 [thread overview]
Message-ID: <20180404143447.GJ6312@dhcp22.suse.cz> (raw)
In-Reply-To: <20180404141850.GC28966@cmpxchg.org>
On Wed 04-04-18 10:18:50, Johannes Weiner wrote:
> On Wed, Apr 04, 2018 at 10:08:55AM -0400, Johannes Weiner wrote:
> > On Sat, Mar 24, 2018 at 09:08:59AM -0700, Tejun Heo wrote:
> > > @@ -91,6 +91,9 @@ struct mem_cgroup_stat_cpu {
> > > unsigned long events[MEMCG_NR_EVENTS];
> > > unsigned long nr_page_events;
> > > unsigned long targets[MEM_CGROUP_NTARGETS];
> > > +
> > > + /* for cgroup rstat delta calculation */
> > > + unsigned long last_events[MEMCG_NR_EVENTS];
> > > };
> > >
> > > struct mem_cgroup_reclaim_iter {
> > > @@ -233,7 +236,11 @@ struct mem_cgroup {
> > >
> > > struct mem_cgroup_stat_cpu __percpu *stat_cpu;
> > > atomic_long_t stat[MEMCG_NR_STAT];
> > > - atomic_long_t events[MEMCG_NR_EVENTS];
> > > +
> > > + /* events is managed by cgroup rstat */
> > > + unsigned long long events[MEMCG_NR_EVENTS]; /* local */
> > > + unsigned long long tree_events[MEMCG_NR_EVENTS]; /* subtree */
> > > + unsigned long long pending_events[MEMCG_NR_EVENTS];/* propagation */
> >
> > The lazy updates are neat, but I'm a little concerned at the memory
> > footprint. On a 64-cpu machine for example, this adds close to 9000
> > words to struct mem_cgroup. And we really only need the accuracy for
> > the 4 cgroup items in memory.events, not all VM events and stats.
> >
> > Why not restrict the patch to those? It would also get rid of the
> > weird sharing between VM and cgroup enums.
>
> In fact, I wonder if we need per-cpuness for MEMCG_LOW, MEMCG_HIGH
> etc. in the first place. They describe super high-level reclaim and
> OOM events, so they're not nearly as hot as other VM events and
> stats. We could probably just have a per-memcg array of atomics.
Agreed!
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2018-04-04 14:34 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-24 16:08 [PATCHSET] mm, memcontrol: Make cgroup_rstat available to controllers Tejun Heo
2018-03-24 16:08 ` [PATCH 1/3] mm: memcontrol: Use cgroup_rstat for event accounting Tejun Heo
2018-04-04 14:08 ` Johannes Weiner
2018-04-04 14:18 ` Johannes Weiner
2018-04-04 14:34 ` Michal Hocko [this message]
2018-04-04 16:58 ` Tejun Heo
2018-04-05 17:55 ` [PATCH] mm: memcg: make sure memory.events is uptodate when waking pollers Johannes Weiner
2018-04-05 19:45 ` Tejun Heo
2018-04-06 12:03 ` Michal Hocko
2018-03-24 16:09 ` [PATCH 2/3] mm: memcontrol: Use cgroup_rstat for stat accounting Tejun Heo
2018-03-24 16:09 ` [PATCH 3/3] mm: memcontrol: Remove lruvec_stat Tejun Heo
2018-04-04 14:13 ` Johannes Weiner
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=20180404143447.GJ6312@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=guro@fb.com \
--cc=hannes@cmpxchg.org \
--cc=kernel-team@fb.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=riel@surriel.com \
--cc=tj@kernel.org \
--cc=vdavydov.dev@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).