lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ