[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Yo1wNXw8KJd3dnt6@carbon>
Date: Tue, 24 May 2022 16:54:29 -0700
From: Roman Gushchin <roman.gushchin@...ux.dev>
To: Dave Chinner <dchinner@...hat.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>, linux-mm@...ck.org,
linux-kernel@...r.kernel.org,
Kent Overstreet <kent.overstreet@...il.com>,
Hillf Danton <hdanton@...a.com>,
Christophe JAILLET <christophe.jaillet@...adoo.fr>
Subject: Re: [PATCH v3 3/6] mm: shrinkers: provide shrinkers with names
On Mon, May 23, 2022 at 07:18:27PM -0700, Roman Gushchin wrote:
> On Mon, May 23, 2022 at 08:13:41AM +1000, Dave Chinner wrote:
> > On Mon, May 09, 2022 at 11:38:17AM -0700, Roman Gushchin wrote:
> > > Currently shrinkers are anonymous objects. For debugging purposes they
> > > can be identified by count/scan function names, but it's not always
> > > useful: e.g. for superblock's shrinkers it's nice to have at least
> > > an idea of to which superblock the shrinker belongs.
> > >
> > > This commit adds names to shrinkers. register_shrinker() and
> > > prealloc_shrinker() functions are extended to take a format and
> > > arguments to master a name.
> > >
> > > In some cases it's not possible to determine a good name at the time
> > > when a shrinker is allocated. For such cases shrinker_debugfs_rename()
> > > is provided.
> > >
> > > After this change the shrinker debugfs directory looks like:
> > > $ cd /sys/kernel/debug/shrinker/
> > > $ ls
> > > dqcache-16 sb-hugetlbfs-17 sb-rootfs-2 sb-tmpfs-50
> > > kfree_rcu-0 sb-hugetlbfs-33 sb-securityfs-6 sb-tracefs-13
> > > sb-aio-20 sb-iomem-12 sb-selinuxfs-22 sb-xfs:vda1-36
> > > sb-anon_inodefs-15 sb-mqueue-21 sb-sockfs-8 sb-zsmalloc-19
> > > sb-bdev-3 sb-nsfs-4 sb-sysfs-26 shadow-18
> > > sb-bpf-32 sb-pipefs-14 sb-tmpfs-1 thp_deferred_split-10
> > > sb-btrfs:vda2-24 sb-proc-25 sb-tmpfs-27 thp_zero-9
> > > sb-cgroup2-30 sb-proc-39 sb-tmpfs-29 xfs_buf-37
> > > sb-configfs-23 sb-proc-41 sb-tmpfs-35 xfs_inodegc-38
> > ^^^^^^^^^^^^^^
> >
> > These XFS shrinkers are also per-block device like the superblock.
> > They need to read like "sb-xfs:vda1-36". and even though it is not
> > in this list, the xfs dquot shrinker will need this as well.
>
> Sure, will do in v4. Thanks!
>
> >
> >
> > > sb-dax-11 sb-proc-45 sb-tmpfs-40 zspool-34
> > > sb-debugfs-7 sb-proc-46 sb-tmpfs-42
> > > sb-devpts-28 sb-proc-47 sb-tmpfs-43
> > > sb-devtmpfs-5 sb-pstore-31 sb-tmpfs-44
> >
> > The proc and tmpfs shrinkers have the same problem - what instance
> > do they actually refer to?
>
> Any ideas on how to name/identify them?
I've looked a bit into it and realized I've no good idea:
I naively thought that procfs sb's have different pid namespaces,
but it's not true anymore. So I've no idea how to identify them.
The same applies to tmpfs instances, no simple id.
If somebody has any ideas, I'd appreciate. If not, we can enhance it later.
Thanks!
Powered by blists - more mailing lists