From: Johannes Weiner <hannes@cmpxchg.org>
To: "Michal Koutný" <mkoutny@suse.com>
Cc: Roman Gushchin <guro@fb.com>,
Andrew Morton <akpm@linux-foundation.org>,
Shakeel Butt <shakeelb@google.com>,
Michal Hocko <mhocko@kernel.org>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
kernel-team@fb.com
Subject: Re: [PATCH v4 4/4] mm: convert page kmemcg type to a page memcg flag
Date: Thu, 1 Oct 2020 13:27:13 -0400 [thread overview]
Message-ID: <20201001172713.GA500308@cmpxchg.org> (raw)
In-Reply-To: <20201001170036.GA29848@blackbook>
On Thu, Oct 01, 2020 at 07:00:36PM +0200, Michal Koutný wrote:
> Hi.
>
> On Wed, Sep 30, 2020 at 05:27:10PM -0700, Roman Gushchin <guro@fb.com> wrote:
> > @@ -369,8 +371,12 @@ enum page_memcg_data_flags {
> > */
> > static inline struct mem_cgroup *page_memcg(struct page *page)
> > {
> > + unsigned long memcg_data = page->memcg_data;
> > +
> > VM_BUG_ON_PAGE(PageSlab(page), page);
> > - return (struct mem_cgroup *)page->memcg_data;
> > + VM_BUG_ON_PAGE(memcg_data & MEMCG_DATA_OBJCGS, page);
> > +
> > + return (struct mem_cgroup *)(memcg_data & ~MEMCG_DATA_FLAGS_MASK);
> > }
> Shouldn't this change go also into page_memcg_rcu()? (I don't think the
> current single user (workingset_activation() would pass a non-slab
> kernel page but for consistency sake.)
+1
> Alternatively, I'm thinking why (in its single use) is there
> page_memcg_rcu() a separate function to page_memcg() (cross memcg page
> migration?).
It goes back to commit 55779ec759ccc3c12b917b3712a7716e1140c652.
The activation code is the only path where page migration is not
excluded. Because unlike with page state statistics, we don't really
mind a race when counting an activation event.
I do think there is a bug, though: mem_cgroup_move_account() should
use WRITE_ONCE() on page->mem_cgroup.
next prev parent reply other threads:[~2020-10-01 17:28 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-01 0:27 [PATCH v4 0/4] mm: allow mapping accounted kernel pages to userspace Roman Gushchin
2020-10-01 0:27 ` [PATCH v4 1/4] mm: memcontrol: use helpers to access page's memcg data Roman Gushchin
2020-10-01 13:46 ` Johannes Weiner
2020-10-01 18:27 ` Roman Gushchin
2020-10-01 18:59 ` Johannes Weiner
2020-10-01 20:51 ` Roman Gushchin
2020-10-02 14:22 ` Johannes Weiner
2020-10-01 0:27 ` [PATCH v4 2/4] mm: memcontrol/slab: use helpers to access slab page's memcg_data Roman Gushchin
2020-10-01 0:27 ` [PATCH v4 3/4] mm: introduce page memcg flags Roman Gushchin
2020-10-01 13:44 ` Johannes Weiner
2020-10-01 0:27 ` [PATCH v4 4/4] mm: convert page kmemcg type to a page memcg flag Roman Gushchin
2020-10-01 13:48 ` Johannes Weiner
2020-10-01 17:00 ` Michal Koutný
2020-10-01 17:27 ` Johannes Weiner [this message]
2020-10-02 10:03 ` Michal Koutný
2020-10-02 13:25 ` Johannes Weiner
2020-10-01 18:30 ` Roman Gushchin
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=20201001172713.GA500308@cmpxchg.org \
--to=hannes@cmpxchg.org \
--cc=akpm@linux-foundation.org \
--cc=guro@fb.com \
--cc=kernel-team@fb.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=mkoutny@suse.com \
--cc=shakeelb@google.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 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.