Re: [PATCH v5] tools/mm: Add script to display page state for a given PID and VADDR

SeongJae Park <[email protected]> Fri, 30 May 2025 17:45:48 -0700
Newsgroups org.kernel.vger.linux-debuggers,org.kernel.vger.linux-kernel,org.kernel.vger.linux-toolchains,org.kvack.linux-mm
Message-ID <[email protected]>
On Fri, 30 May 2025 15:15:15 -0700 Stephen Brennan <[email protected]> wrote:

> SeongJae Park <[email protected]> writes:
> > On Fri, 30 May 2025 13:58:55 +0800 Ye Liu <[email protected]> wrote:
[...]
> > As reported to the previous version, I show below on my test.
> >
> > Memcg Name:      unknown
> > Memcg Path:      Unexpected error: 'struct kernfs_node' has no member 'parent'
> >
> > I know you explained it is an issue of drgn version on my setup, as a reply to
> > my previous report.  But, could you please make the output more easy to
> > understand the problem?  No strong opinion, though.
> 
> This is an interesting issue.
> 
> The cgroup helpers in drgn were broken by the name change of
> kernfs_node.parent to kernfs_node.__parent in Linux 6.15. This was fixed
> in drgn promptly, and the fix is included in drgn's 0.0.31 release. If
> you use that, the error should go away. In essence, 0.0.31 was the first
> drgn version to support Linux 6.15.

FYI, I'm using drgn package on Debian 12, which says

    $ drgn --version
    drgn 0.0.30+82.ge2b60e4b (using Python 3.11.2, elfutils 0.188, without libkdumpfile)

Also I run a kernel built from damon/next[1], which is based on 6.15-rc6.

> 
> However, there's no general way to catch any drgn error and determine
> that that drgn doesn't support your kernel version (yet). The code could
> be updated for this specific issue, but it wouldn't really fix the
> general problem. I think drgn needs to include an (INFORMATIONAL ONLY)
> set of kernel versions that it has been tested on. Then, you could use
> that in a script to print a warning (or add it to your general purpose
> error handling).

Sounds like a nice plan!

> I'll look into adding this.

Thank you!  I'm not urgent or having a real problem with this at the moment,
though.  So, please take your time and fun!

> 
> This is itself a corner case for committing drgn scripts in the kernel.
> Omar does a really excellent job with running tests on the -rc's and
> finding broken helpers promptly -- usually well ahead of the kernel
> release. But even then, there can be a delay from the fix to the next
> drgn release. The more that you rely on drgn's helpers for a script that
> you distribute in the kernel, the more likely that it will periodically
> break, and the in-tree version wouldn't work until the newer drgn
> version is released.
> 
> I don't have a solution for *that*, but it's something to consider when
> deciding whether to include a script in drgn's contrib/ directory, versus
> in the kernel.

Makes sense, thank you for sharing your wise thoughts.  This is very helpful to
me.

[1] https://origin.kernel.org/doc/html/latest/mm/damon/maintainer-profile.html#scm-trees


Thanks,
SJ

[...]