Re: [patch] epoll use a single inode ...

From: Davide Libenzi
Date: Tue Mar 06 2007 - 20:01:39 EST


On Tue, 6 Mar 2007, Linus Torvalds wrote:

>
> [ Al Viro added to Cc: as the arbiter of good taste in the VFS layer. He
> has veto powers even over my proposals ;^]
>
> On Tue, 6 Mar 2007, Davide Libenzi wrote:
> >
> > I currently have the dentry to carry the name of the file* class it is
> > linked to. I'd prefer to keep it that way, unless there are huge factors
> > against.
>
> I assume that the *only* reason for having multiple dentries is really
> just the output in /proc/<pid>/fd/, right? Or is there any other reason to
> have separate dentries for these pseudo-files?
>
> It's a bit sad to waste that much memory (and time) on something like
> that. I bet that the dentry setup is a noticeable part of the whole
> sigfd()/timerfd() setup. It's likely also a big part of any memory
> footprint if you have lots of them.
>
> So how about just doing:
> - do a single dentry
> - make a "struct file_operations" member function that prints out the
> name of the thing in /proc/<pid>/fd/, and which *defaults* to just
> doing the d_path() on the dentry, but special filesystems like this
> could do something else (like print out a fake inode number from the
> "file->f_private_data" information)
>
> There seems to really be no downsides to that approach. No existing
> filesystem will even notice (they'll all have NULL in the new f_op
> member), and it would allow pipes etc to be sped up and use less memory.

I'm OK with everything that avoid code duplication due to those fake
inodes. The change can be localized inside the existing API, so it doesn't
really affect me externally.



- Davide


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/