Messages in this thread | | | Date | Thu, 1 Oct 2020 19:00:36 +0200 | From | Michal Koutný <> | Subject | Re: [PATCH v4 4/4] mm: convert page kmemcg type to a page memcg flag |
| |
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.)
Alternatively, I'm thinking why (in its single use) is there page_memcg_rcu() a separate function to page_memcg() (cross memcg page migration?).
Regards, Michal [unhandled content-type:application/pgp-signature] | |