From: SJ Park <sj@kernel.org>
To: Song Hu <husong@kylinos.cn>
Cc: SJ Park <sj@kernel.org>, damon@lists.linux.dev
Subject: Re: Question on damon_sysfs_memcg_path_to_id() path resolution
Date: Wed, 15 Jul 2026 06:51:35 -0700 [thread overview]
Message-ID: <20260715135135.83926-1-sj@kernel.org> (raw)
In-Reply-To: <20260715063546.1427154-1-husong@kylinos.cn>
On Wed, 15 Jul 2026 14:35:46 +0800 Song Hu <husong@kylinos.cn> wrote:
> Hi SeongJae,
>
> I've been reading the memcg path->id resolution used by DAMOS filters
> and quota goals, and I'd like to ask about a design choice before
> suggesting any change.
Thank you for asking this question!
>
> damon_sysfs_memcg_path_to_id() (mm/damon/sysfs-common.c) resolves the
> user-written cgroup path by iterating all memcgs with
> mem_cgroup_iter() and comparing each one's cgroup_path() to the
> target. It could instead call cgroup_get_from_path() directly, but
> the two don't resolve the path the same way:
>
> - current code: cgroup_path(memcg->css.cgroup) is just kernfs_path(),
> i.e. the absolute path in the cgroup hierarchy, independent of the
> caller's cgroup namespace;
>
> - cgroup_get_from_path(): resolves the path against
> current_cgns_cgroup_dfl(), i.e. relative to the caller's cgroup
> namespace.
Today I learned cgroup_get_from_path() :)
And it seems it will work for not only memcg but any cgroups?
>
> So in a cgroup-namespaced (container) setup the two disagree: today
> the lookup is absolute; switching to cgroup_get_from_path() would make
> it namespace-relative. On the host / init namespace they agree.
If my above guess is correct, it may also differently work if the user gives
non-memcg cgroup path.
>
> I ask because the iteration has already needed one stable fix
> (d4e7b5c4cc35, a missing mem_cgroup_iter_break() that leaked a cgroup
> reference), and cgroup_get_from_path() is a matched get/put pair that
> would avoid that whole class of mistake -- but only if the namespace
> behavior change is acceptable.
>
> Is the absolute-path behavior intentional? If namespace-relative
> resolution is fine, I'm happy to send a patch (keeping the
> mem_cgroup_online() skip). If not, I'll leave it as is.
It was not very intentional. I just didn't think about container-inside DAMON
use case.
I find the current behavior might be tedious if the user runs DAMON inside
cgroups. Finding the absolute cgroup path inside containers might be
challenging. If that's the case, I'm up to change or extend the behaviors.
If this is only for making the code easier to maintain, I don't really feel
like it deserves the behavioral changes, to be honest.
Thanks,
SJ
[...]
prev parent reply other threads:[~2026-07-15 13:51 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-15 6:35 Question on damon_sysfs_memcg_path_to_id() path resolution Song Hu
2026-07-15 13:51 ` SJ Park [this message]
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=20260715135135.83926-1-sj@kernel.org \
--to=sj@kernel.org \
--cc=damon@lists.linux.dev \
--cc=husong@kylinos.cn \
/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