Re: [PATCH v2 14/46] mm/memcg: Add folio_charge_cgroup()

From: Matthew Wilcox
Date: Fri Jun 25 2021 - 07:35:29 EST


On Fri, Jun 25, 2021 at 10:22:35AM +0200, Michal Hocko wrote:
> On Thu 24-06-21 17:42:58, Matthew Wilcox wrote:
> > On Wed, Jun 23, 2021 at 10:15:20AM +0200, Christoph Hellwig wrote:
> > > On Tue, Jun 22, 2021 at 01:15:19PM +0100, Matthew Wilcox (Oracle) wrote:
> > > > mem_cgroup_charge() already assumed it was being passed a non-tail
> > > > page (and looking at the callers, that's true; it's called for freshly
> > > > allocated pages). The only real change here is that folio_nr_pages()
> > > > doesn't compile away like thp_nr_pages() does as folio support
> > > > is not conditional on transparent hugepage support. Reimplement
> > > > mem_cgroup_charge() as a wrapper around folio_charge_cgroup().
> > >
> > > Maybe rename __mem_cgroup_charge to __folio_charge_cgroup as well?
> >
> > Oh, yeah, should have done that. Thanks.
>
> I would stick with __mem_cgroup_charge here. Not that I would insist but the
> folio nature is quite obvious from the parameter already.
>
> Btw. memcg_check_events doesn't really need the page argument. A nid
> should be sufficient and your earlier patch is already touching the
> softlimit code so maybe it would be worth changing this page -> folio ->
> page back and forth.

I'm not a huge fan of that 'dummy_page' component of uncharge_gather,
so replacing that with nid makes sense. I'll juggle these patches a bit
and work that in. Thanks!