[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200703081211.20662.dada1@cosmosbay.com>
Date: Thu, 8 Mar 2007 12:11:20 +0100
From: Eric Dumazet <dada1@...mosbay.com>
To: Christoph Hellwig <hch@...radead.org>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Davide Libenzi <davidel@...ilserver.org>,
Avi Kivity <avi@...o.co.il>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Al Viro <viro@...iv.linux.org.uk>
Subject: Re: [patch] epoll use a single inode ...
Thanks again for your feedback Christoph :)
I think I addressed all your remarks.
Thank you
[PATCH] Delay the dentry name generation on sockets and pipes.
1) Introduces a new method in 'struct dentry_operations'. This method called
d_dname() might be called from d_path() to build a pathname
for special filesystems. It is called without locks.
Future patches (if we succeed in having one common dentry for all pipes) may
need to change prototype of this method, but we now use :
char *d_dname(struct dentry *dentry, char *buffer, int buflen)
2) Use this new method for sockets : No more sprintf() at socket creation.
This is delayed up to the moment someone does an access to /proc/pid/fd/...
3) Use this new method for pipes : No more sprintf() at pipe creation. This is
delayed up to the moment someone does an access to /proc/pid/fd/...
A benchmark consisting of 1.000.000 calls to pipe()/close()/close() gives a
*nice* speedup on my Pentium(M) 1.6 Ghz :
3.090 s instead of 3.450 s
Signed-off-by: Eric Dumazet <dada1@...mosbay.com>
CC: Christoph Hellwig <hch@...radead.org>
CC: Linus Torvalds <torvalds@...ux-foundation.org>
CC: Davide Libenzi <davidel@...ilserver.org>
CC: Al Viro <viro@...iv.linux.org.uk>
Documentation/filesystems/Locking | 2 ++
Documentation/filesystems/vfs.txt | 12 +++++++++++-
fs/dcache.c | 7 +++++++
fs/pipe.c | 15 +++++++++------
include/linux/dcache.h | 1 +
net/socket.c | 17 ++++++++++-------
6 files changed, 40 insertions(+), 14 deletions(-)
View attachment "introduce_d_dname.patch" of type "text/plain" (5687 bytes)
Powered by blists - more mailing lists