Re: [LSF/MM TOPIC] Making pseudo file systems inodes/dentries more like normal file systems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 25 Jan 2024 17:59:40 -0800
Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:

> > I tried to use kernfs when doing a lot of this and I had issues. I
> > don't remember what those were, but I can revisit it.  
> 
> You might, as kernfs makes it so that the filesystem structures are
> created on demand, when accessed, and then removed when memory pressure
> happens.  That's what sysfs and configfs and cgroups use quite
> successfully.

kernfs doesn't look trivial and I can't find any documentation on how
to use it.

Should there be work to move debugfs over to kernfs?

I could look at it too, but as tracefs, and more specifically eventfs,
has 10s of thousands of files, I'm very concerned about meta data size.

Currently eventfs keeps a data structure for every directory, but for
the files, it only keeps an array of names and callbacks. When a
directory is registered, it lists the files it needs. eventfs is
specific that the number of files a directory has is always constant,
and files will not be removed or added once a directory is created.

This way, the information on how a file is created is done via a
callback that was registered when the directory was created.

For this use case, I don't think kernfs could be used. But I would
still like to talk about what I'm trying to accomplish, and perhaps see
if there's work that can be done to consolidate what is out there.

-- Steve




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux