From: Michal Hocko <mhocko@suse.com>
To: Johannes Weiner <hannes@cmpxchg.org>
Cc: Joshua Hahn <joshua.hahnjy@gmail.com>,
nphamcs@gmail.com, shakeel.butt@linux.dev,
roman.gushchin@linux.dev, muchun.song@linux.dev, tj@kernel.org,
lizefan.x@bytedance.com, mkoutny@suse.com, corbet@lwn.net,
lnyng@meta.com, akpm@linux-foundation.org,
cgroups@vger.kernel.org, linux-mm@kvack.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
kernel-team@meta.com
Subject: Re: [PATCH v3 1/1] memcg/hugetlb: Adding hugeTLB counters to memcg
Date: Wed, 30 Oct 2024 16:27:37 +0100 [thread overview]
Message-ID: <ZyJQaXAZSMKkFVQ2@tiehlicka> (raw)
In-Reply-To: <20241030150102.GA706616@cmpxchg.org>
On Wed 30-10-24 11:01:02, Johannes Weiner wrote:
> On Wed, Oct 30, 2024 at 12:35:25PM +0100, Michal Hocko wrote:
> > On Mon 28-10-24 14:05:05, Joshua Hahn wrote:
> > [...]
> > > Changelog
> > > v3:
> > > * Removed check for whether CGRP_ROOT_HUGETLB_ACCOUNTING is on, since
> > > this check is already handled by lruvec_stat_mod (and doing the
> > > check in hugetlb.c actually breaks the build if MEMCG is not
> > > enabled.
> > [...]
> > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c
> > > index 190fa05635f4..fbb10e52d7ea 100644
> > > --- a/mm/hugetlb.c
> > > +++ b/mm/hugetlb.c
> > > @@ -1925,6 +1925,7 @@ void free_huge_folio(struct folio *folio)
> > > pages_per_huge_page(h), folio);
> > > hugetlb_cgroup_uncharge_folio_rsvd(hstate_index(h),
> > > pages_per_huge_page(h), folio);
> > > + lruvec_stat_mod_folio(folio, NR_HUGETLB, -pages_per_huge_page(h));
> > > mem_cgroup_uncharge(folio);
> > > if (restore_reserve)
> > > h->resv_huge_pages++;
> > > @@ -3093,6 +3094,7 @@ struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma,
> > >
> > > if (!memcg_charge_ret)
> > > mem_cgroup_commit_charge(folio, memcg);
> > > + lruvec_stat_mod_folio(folio, NR_HUGETLB, pages_per_huge_page(h));
> > > mem_cgroup_put(memcg);
> > >
> > > return folio;
> >
> > I do not see any specific checks for CGRP_ROOT_MEMORY_HUGETLB_ACCOUNTING
> > in these paths. I guess you wanted to say that you rely on
> > mem_cgroup_commit_charge setting memcg pointer which then __lruvec_stat_mod_folio
> > relies on when updating stats.
>
> Yes, this is what Shakeel pointed out here:
>
> https://lore.kernel.org/lkml/il346o3nahawquum3t5rzcuuntkdpyahidpm2ctmdibj3td7pm@2aqirlm5hrdh/
It belongs to the changelog.
> > I suspect this all is done because you want a global counter to be
> > updated as well, right? Changelog doesn't say anything about that
> > though. Why is this needed when /proc/meminfo already describes the
> > global hugetlb usage?
>
> Sigh.
>
> vmstats is the preferred framework for cgroup stats. It makes stat
> items consistent between global and cgroup. It provides a per-node
> breakdown as well which is useful. It avoids proliferating
> cgroup-specific hooks in generic MM code.
>
> It was a ton of work to integrate cgroup stats into vmstats and get
> rid of all the memcg special casing everywhere. You were there for all
> of it. We're not adding cgroup-specific stats unless unavoidable.
>
> Duplication doesn't matter, either. We have plenty of overlap between
> vmstat and meminfo. By all means, send a follow-up patch to have the
> meminfo one sourced from global_node_page_state().
>
> But you know all this.
It is not really important what _I_ do know. The commit log is not
written for me.
Joshua has greatly improved the motivation part. Yet implementation
specifics are still lacking behind mostly left in Changelog part of the
commit message which will be dropped along with the diffstat.
> I'm having a hard time seeing the way you are,
> and have been, engaging with this patch as good-faithed.
Sorry to hear that but this hasn't been my intention. My main focus has
been to put implicit assumptions into patch description. I really do not
see reason for such a pushback TBH.
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2024-10-30 15:27 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-28 21:05 Joshua Hahn
2024-10-28 22:38 ` Shakeel Butt
2024-10-29 20:28 ` Roman Gushchin
2024-10-29 20:48 ` Johannes Weiner
2024-10-29 21:04 ` Nhat Pham
2024-10-30 11:35 ` Michal Hocko
2024-10-30 15:01 ` Johannes Weiner
2024-10-30 15:27 ` Michal Hocko [this message]
2024-10-30 18:30 ` Johannes Weiner
2024-10-30 20:43 ` Joshua Hahn
2024-10-30 23:26 ` Andrew Morton
2024-10-31 8:12 ` Michal Hocko
2024-10-31 16:09 ` Johannes Weiner
2024-10-31 19:03 ` Joshua Hahn
2024-11-01 1:34 ` Andrew Morton
2024-11-01 18:33 ` Joshua Hahn
2024-11-01 20:02 ` Andrew Morton
2024-11-01 20:28 ` Joshua Hahn
2024-10-30 14:52 ` Chris Down
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=ZyJQaXAZSMKkFVQ2@tiehlicka \
--to=mhocko@suse.com \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=corbet@lwn.net \
--cc=hannes@cmpxchg.org \
--cc=joshua.hahnjy@gmail.com \
--cc=kernel-team@meta.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lizefan.x@bytedance.com \
--cc=lnyng@meta.com \
--cc=mkoutny@suse.com \
--cc=muchun.song@linux.dev \
--cc=nphamcs@gmail.com \
--cc=roman.gushchin@linux.dev \
--cc=shakeel.butt@linux.dev \
--cc=tj@kernel.org \
/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