All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <dada1@cosmosbay.com>
To: Matthew Wilcox <matthew@wil.cx>
Cc: Christoph Hellwig <hch@infradead.org>,
	David Miller <davem@davemloft.net>,
	mingo@elte.hu, cl@linux-foundation.org, rjw@sisk.pl,
	linux-kernel@vger.kernel.org, kernel-testers@vger.kernel.org,
	efault@gmx.de, a.p.zijlstra@chello.nl,
	Linux Netdev List <netdev@vger.kernel.org>,
	viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH] fs: pipe/sockets/anon dentries should have themselves as parent
Date: Sun, 23 Nov 2008 04:53:13 +0100	[thread overview]
Message-ID: <4928D3A9.8060805@cosmosbay.com> (raw)
In-Reply-To: <20081121184344.GC5707@parisc-linux.org>

[-- Attachment #1: Type: text/plain, Size: 5733 bytes --]

Matthew Wilcox a écrit :
> On Fri, Nov 21, 2008 at 06:58:29PM +0100, Eric Dumazet wrote:
>> +/**
>> + * d_alloc_unhashed - allocate unhashed dentry
>> + * @inode: inode to allocate the dentry for
>> + * @name: dentry name
> 
> It's normal to list the parameters in the order they're passed to the
> function.  Not sure if we have a tool that checks for this or not --
> Randy?

Yes, no problem, better to have the same order.

> 
>> + *
>> + * Allocate an unhashed dentry for the inode given. The inode is
>> + * instantiated and returned. %NULL is returned if there is insufficient
>> + * memory. Unhashed dentries have themselves as a parent.
>> + */
>> + 
>> +struct dentry * d_alloc_unhashed(const char *name, struct inode *inode)
>> +{
>> +	struct qstr q = { .name = name, .len = strlen(name) };
>> +	struct dentry *res;
>> +
>> +	res = d_alloc(NULL, &q);
>> +	if (res) {
>> +		res->d_sb = inode->i_sb;
>> +		res->d_parent = res;
>> +		/*
>> +		 * We dont want to push this dentry into global dentry hash table.
>> +		 * We pretend dentry is already hashed, by unsetting DCACHE_UNHASHED
>> +		 * This permits a working /proc/$pid/fd/XXX on sockets,pipes,anon
>> +		 */
> 
> Line length ... as checkpatch would have warned you ;-)
> 
> And there are several other grammatical nitpicks with this comment.  Try
> this:
> 
> 		/*
> 		 * We don't want to put this dentry in the global dentry
> 		 * hash table, so we pretend the dentry is already hashed
> 		 * by unsetting DCACHE_UNHASHED.  This permits 
> 		 * /proc/$pid/fd/XXX t work for sockets, pipes and
> 		 * anonymous files (signalfd, timerfd, etc).
> 		 */

Yes, this is better.

> 
>> +		res->d_flags &= ~DCACHE_UNHASHED;
>> +		res->d_flags |= DCACHE_DISCONNECTED;
> 
> Is this really better than:
> 
> 		res->d_flags = res->d_flags & ~DCACHE_UNHASHED |
> 						DCACHE_DISCONNECTED;

Well, I personally prefer the two lines, intention is more readable :)

> 
> Anyway, nice cleanup.
> 

Thanks Matthew, here is an updated version of the patch.

[PATCH] fs: pipe/sockets/anon dentries should have themselves as parent


Linking pipe/sockets/anon dentries to one root 'parent' has no functional
impact at all, but a scalability one.

We can avoid touching a cache line at allocation stage (inside d_alloc(), no need
to touch root->d_count), but also at freeing time (in d_kill, decrementing d_count)
We avoid an expensive atomic_dec_and_lock() call on the root dentry.

We add d_alloc_unhashed(const char *name, struct inode *inode) helper
to be used by pipes/socket/anon. This function is about the same as
d_alloc_root() but for unhashed entries.

Before patch, time to run 8 *  1 million of close(socket()) calls on 8 CPUS was :

real    0m27.496s
user    0m0.657s
sys     3m39.092s

After patch :

real    0m23.843s
user    0m0.616s
sys     3m9.732s


Old oprofile :
CPU: Core 2, speed 3000.11 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000
samples  cum. samples  %        cum. %     symbol name
164257   164257        11.0245  11.0245    init_file
155488   319745        10.4359  21.4604    d_alloc
151887   471632        10.1942  31.6547    _atomic_dec_and_lock
91620    563252         6.1493  37.8039    inet_create
74245    637497         4.9831  42.7871    kmem_cache_alloc
46702    684199         3.1345  45.9216    dentry_iput
46186    730385         3.0999  49.0215    tcp_close
42824    773209         2.8742  51.8957    kmem_cache_free
37275    810484         2.5018  54.3975    wake_up_inode
36553    847037         2.4533  56.8508    tcp_v4_init_sock
35661    882698         2.3935  59.2443    inotify_d_instantiate
32998    915696         2.2147  61.4590    sysenter_past_esp
31442    947138         2.1103  63.5693    d_instantiate
31303    978441         2.1010  65.6703    generic_forget_inode
27533    1005974        1.8479  67.5183    vfs_dq_drop
24237    1030211        1.6267  69.1450    sock_attach_fd
19290    1049501        1.2947  70.4397    __copy_from_user_ll


New oprofile :
CPU: Core 2, speed 3000.11 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000
samples  cum. samples  %        cum. %     symbol name
148703   148703        10.8581  10.8581    inet_create
116680   265383         8.5198  19.3779    new_inode
108912   374295         7.9526  27.3306    init_file
82911    457206         6.0541  33.3846    kmem_cache_alloc
65690    522896         4.7966  38.1812    wake_up_inode
53286    576182         3.8909  42.0721    _atomic_dec_and_lock
43814    619996         3.1992  45.2713    generic_forget_inode
41993    661989         3.0663  48.3376    d_alloc
41244    703233         3.0116  51.3492    kmem_cache_free
39244    742477         2.8655  54.2148    tcp_v4_init_sock
37402    779879         2.7310  56.9458    tcp_close
33336    813215         2.4342  59.3800    sysenter_past_esp
28596    841811         2.0880  61.4680    inode_has_buffers
25769    867580         1.8816  63.3496    d_kill
22606    890186         1.6507  65.0003    dentry_iput
20224    910410         1.4767  66.4770    vfs_dq_drop
19800    930210         1.4458  67.9228    __copy_from_user_ll

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
---
 fs/anon_inodes.c       |    9 +--------
 fs/dcache.c            |   33 +++++++++++++++++++++++++++++++++
 fs/pipe.c              |   10 +---------
 include/linux/dcache.h |    1 +
 net/socket.c           |   10 +---------
 5 files changed, 37 insertions(+), 26 deletions(-)

[-- Attachment #2: d_alloc_unhashed2.patch --]
[-- Type: text/plain, Size: 4788 bytes --]

diff --git a/fs/anon_inodes.c b/fs/anon_inodes.c
index 3662dd4..9fd0515 100644
--- a/fs/anon_inodes.c
+++ b/fs/anon_inodes.c
@@ -71,7 +71,6 @@ static struct dentry_operations anon_inodefs_dentry_operations = {
 int anon_inode_getfd(const char *name, const struct file_operations *fops,
 		     void *priv, int flags)
 {
-	struct qstr this;
 	struct dentry *dentry;
 	struct file *file;
 	int error, fd;
@@ -89,10 +88,7 @@ int anon_inode_getfd(const char *name, const struct file_operations *fops,
 	 * using the inode sequence number.
 	 */
 	error = -ENOMEM;
-	this.name = name;
-	this.len = strlen(name);
-	this.hash = 0;
-	dentry = d_alloc(anon_inode_mnt->mnt_sb->s_root, &this);
+	dentry = d_alloc_unhashed(name, anon_inode_inode);
 	if (!dentry)
 		goto err_put_unused_fd;
 
@@ -104,9 +100,6 @@ int anon_inode_getfd(const char *name, const struct file_operations *fops,
 	atomic_inc(&anon_inode_inode->i_count);
 
 	dentry->d_op = &anon_inodefs_dentry_operations;
-	/* Do not publish this dentry inside the global dentry hash table */
-	dentry->d_flags &= ~DCACHE_UNHASHED;
-	d_instantiate(dentry, anon_inode_inode);
 
 	error = -ENFILE;
 	file = alloc_file(anon_inode_mnt, dentry,
diff --git a/fs/dcache.c b/fs/dcache.c
index a1d86c7..43ef88d 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1111,6 +1111,39 @@ struct dentry * d_alloc_root(struct inode * root_inode)
 	return res;
 }
 
+/**
+ * d_alloc_unhashed - allocate unhashed dentry
+ * @name: dentry name
+ * @inode: inode to allocate the dentry for
+ *
+ * Allocate an unhashed dentry for the inode given. The inode is
+ * instantiated and returned. %NULL is returned if there is insufficient
+ * memory. Unhashed dentries have themselves as a parent.
+ */
+ 
+struct dentry * d_alloc_unhashed(const char *name, struct inode *inode)
+{
+	struct qstr q = { .name = name, .len = strlen(name) };
+	struct dentry *res;
+
+	res = d_alloc(NULL, &q);
+	if (res) {
+		res->d_sb = inode->i_sb;
+		res->d_parent = res;
+		/*
+		 * We dont want to push this dentry into global dentry
+		 * hash table, so we pretend the dentry is already hashed
+		 * by unsetting DCACHE_UNHASHED. This permits
+		 * /proc/$pid/fd/XXX to work for sockets, pipes, and
+		 * anonymous files (signalfd, timerfd, ...)
+		 */
+		res->d_flags &= ~DCACHE_UNHASHED;
+		res->d_flags |= DCACHE_DISCONNECTED;
+		d_instantiate(res, inode);
+	}
+	return res;
+}
+
 static inline struct hlist_head *d_hash(struct dentry *parent,
 					unsigned long hash)
 {
diff --git a/fs/pipe.c b/fs/pipe.c
index 7aea8b8..29fcac2 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -918,7 +918,6 @@ struct file *create_write_pipe(int flags)
 	struct inode *inode;
 	struct file *f;
 	struct dentry *dentry;
-	struct qstr name = { .name = "" };
 
 	err = -ENFILE;
 	inode = get_pipe_inode();
@@ -926,18 +925,11 @@ struct file *create_write_pipe(int flags)
 		goto err;
 
 	err = -ENOMEM;
-	dentry = d_alloc(pipe_mnt->mnt_sb->s_root, &name);
+	dentry = d_alloc_unhashed("", inode);
 	if (!dentry)
 		goto err_inode;
 
 	dentry->d_op = &pipefs_dentry_operations;
-	/*
-	 * We dont want to publish this dentry into global dentry hash table.
-	 * We pretend dentry is already hashed, by unsetting DCACHE_UNHASHED
-	 * This permits a working /proc/$pid/fd/XXX on pipes
-	 */
-	dentry->d_flags &= ~DCACHE_UNHASHED;
-	d_instantiate(dentry, inode);
 
 	err = -ENFILE;
 	f = alloc_file(pipe_mnt, dentry, FMODE_WRITE, &write_pipefifo_fops);
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
index a37359d..12438d6 100644
--- a/include/linux/dcache.h
+++ b/include/linux/dcache.h
@@ -238,6 +238,7 @@ extern int d_invalidate(struct dentry *);
 
 /* only used at mount-time */
 extern struct dentry * d_alloc_root(struct inode *);
+extern struct dentry * d_alloc_unhashed(const char *, struct inode *);
 
 /* <clickety>-<click> the ramfs-type tree */
 extern void d_genocide(struct dentry *);
diff --git a/net/socket.c b/net/socket.c
index e9d65ea..b659b5d 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -371,20 +371,12 @@ static int sock_alloc_fd(struct file **filep, int flags)
 static int sock_attach_fd(struct socket *sock, struct file *file, int flags)
 {
 	struct dentry *dentry;
-	struct qstr name = { .name = "" };
 
-	dentry = d_alloc(sock_mnt->mnt_sb->s_root, &name);
+	dentry = d_alloc_unhashed("", SOCK_INODE(sock));
 	if (unlikely(!dentry))
 		return -ENOMEM;
 
 	dentry->d_op = &sockfs_dentry_operations;
-	/*
-	 * We dont want to push this dentry into global dentry hash table.
-	 * We pretend dentry is already hashed, by unsetting DCACHE_UNHASHED
-	 * This permits a working /proc/$pid/fd/XXX on sockets
-	 */
-	dentry->d_flags &= ~DCACHE_UNHASHED;
-	d_instantiate(dentry, SOCK_INODE(sock));
 
 	sock->file = file;
 	init_file(file, sock_mnt, dentry, FMODE_READ | FMODE_WRITE,

  reply	other threads:[~2008-11-23  3:54 UTC|newest]

Thread overview: 349+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-16 17:38 2.6.28-rc5: Reported regressions 2.6.26 -> 2.6.27 Rafael J. Wysocki
2008-11-16 17:38 ` Rafael J. Wysocki
2008-11-16 17:38 ` [Bug #11207] VolanoMark regression with 2.6.27-rc1 Rafael J. Wysocki
2008-11-16 17:38   ` Rafael J. Wysocki
2008-11-16 17:40 ` [Bug #11215] INFO: possible recursive locking detected ps2_command Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-16 17:40 ` [Bug #11308] tbench regression on each kernel release from 2.6.22 -&gt; 2.6.28 Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-17  9:06   ` Ingo Molnar
2008-11-17  9:06     ` Ingo Molnar
2008-11-17  9:14     ` David Miller
2008-11-17  9:14       ` David Miller
2008-11-17 11:01       ` Ingo Molnar
2008-11-17 11:01         ` Ingo Molnar
2008-11-17 11:20         ` Eric Dumazet
2008-11-17 16:11           ` Ingo Molnar
2008-11-17 16:11             ` Ingo Molnar
2008-11-17 16:35             ` Eric Dumazet
2008-11-17 16:35               ` Eric Dumazet
2008-11-17 17:08               ` Ingo Molnar
2008-11-17 17:08                 ` Ingo Molnar
2008-11-17 17:25                 ` Ingo Molnar
2008-11-17 17:25                   ` Ingo Molnar
2008-11-17 17:33                   ` Eric Dumazet
2008-11-17 17:33                     ` Eric Dumazet
2008-11-17 17:38                     ` Linus Torvalds
2008-11-17 17:38                       ` Linus Torvalds
2008-11-17 17:42                       ` Eric Dumazet
2008-11-17 17:42                         ` Eric Dumazet
2008-11-17 18:23                       ` Ingo Molnar
2008-11-17 18:23                         ` Ingo Molnar
2008-11-17 18:33                         ` Linus Torvalds
2008-11-17 18:33                           ` Linus Torvalds
2008-11-17 18:49                         ` Ingo Molnar
2008-11-17 18:49                           ` Ingo Molnar
2008-11-17 19:30                           ` Eric Dumazet
2008-11-17 19:30                             ` Eric Dumazet
2008-11-17 19:39                           ` David Miller
2008-11-17 19:39                             ` David Miller
2008-11-17 19:43                             ` Eric Dumazet
2008-11-17 19:43                               ` Eric Dumazet
2008-11-17 19:55                             ` Linus Torvalds
2008-11-17 19:55                               ` Linus Torvalds
2008-11-17 20:16                               ` David Miller
2008-11-17 20:16                                 ` David Miller
2008-11-17 20:30                                 ` Linus Torvalds
2008-11-17 20:30                                   ` Linus Torvalds
2008-11-17 20:58                                   ` David Miller
2008-11-17 20:58                                     ` David Miller
2008-11-18  9:44                                     ` Nick Piggin
2008-11-18  9:44                                       ` Nick Piggin
2008-11-18 15:58                                       ` Linus Torvalds
2008-11-18 15:58                                         ` Linus Torvalds
2008-11-19  4:31                                         ` Nick Piggin
2008-11-20  9:14                                         ` David Miller
2008-11-20  9:14                                           ` David Miller
2008-11-20  9:06                                       ` David Miller
2008-11-20  9:06                                         ` David Miller
2008-11-18 12:29                             ` Mike Galbraith
2008-11-18 12:29                               ` Mike Galbraith
2008-11-17 19:57                           ` Ingo Molnar
2008-11-17 19:57                             ` Ingo Molnar
2008-11-17 20:20                           ` (avc_has_perm_noaudit()) " Ingo Molnar
2008-11-17 20:20                             ` Ingo Molnar
2008-11-17 20:32                           ` ip_queue_xmit(): " Ingo Molnar
2008-11-17 20:32                             ` Ingo Molnar
2008-11-17 20:57                             ` Eric Dumazet
2008-11-17 20:57                               ` Eric Dumazet
2008-11-18  9:12                             ` Nick Piggin
2008-11-17 20:47                           ` Ingo Molnar
2008-11-17 20:47                             ` Ingo Molnar
2008-11-17 20:56                             ` Eric Dumazet
2008-11-17 20:56                               ` Eric Dumazet
2008-11-17 20:55                           ` skb_release_head_state(): " Ingo Molnar
2008-11-17 20:55                             ` Ingo Molnar
2008-11-17 21:01                             ` David Miller
2008-11-17 21:01                               ` David Miller
2008-11-17 21:04                             ` Eric Dumazet
2008-11-17 21:04                               ` Eric Dumazet
2008-11-17 21:34                             ` Linus Torvalds
2008-11-17 21:34                               ` Linus Torvalds
2008-11-17 21:38                               ` Ingo Molnar
2008-11-17 21:38                                 ` Ingo Molnar
2008-11-17 21:09                           ` tcp_ack(): " Ingo Molnar
2008-11-17 21:09                             ` Ingo Molnar
2008-11-17 21:19                           ` tcp_recvmsg(): " Ingo Molnar
2008-11-17 21:19                             ` Ingo Molnar
2008-11-17 21:26                           ` eth_type_trans(): " Ingo Molnar
2008-11-17 21:26                             ` Ingo Molnar
2008-11-17 21:40                             ` Eric Dumazet
2008-11-17 21:40                               ` Eric Dumazet
2008-11-17 23:41                               ` Eric Dumazet
2008-11-17 23:41                                 ` Eric Dumazet
2008-11-18  0:01                                 ` Linus Torvalds
2008-11-18  0:01                                   ` Linus Torvalds
2008-11-18  8:35                                   ` Eric Dumazet
2008-11-17 21:52                             ` Linus Torvalds
2008-11-17 21:52                               ` Linus Torvalds
2008-11-18  5:16                             ` David Miller
2008-11-18  5:16                               ` David Miller
2008-11-18  5:35                               ` Eric Dumazet
2008-11-18  7:00                                 ` David Miller
2008-11-18  7:00                                   ` David Miller
2008-11-18  8:30                               ` Ingo Molnar
2008-11-18  8:30                                 ` Ingo Molnar
2008-11-18  8:49                                 ` Eric Dumazet
2008-11-18  8:49                                   ` Eric Dumazet
2008-11-17 21:35                           ` __inet_lookup_established(): " Ingo Molnar
2008-11-17 21:35                             ` Ingo Molnar
2008-11-17 22:14                             ` Eric Dumazet
2008-11-17 22:14                               ` Eric Dumazet
2008-11-17 21:59                           ` system_call() - " Ingo Molnar
2008-11-17 21:59                             ` Ingo Molnar
2008-11-17 22:09                             ` Linus Torvalds
2008-11-17 22:09                               ` Linus Torvalds
2008-11-17 22:08                           ` Ingo Molnar
2008-11-17 22:15                             ` Eric Dumazet
2008-11-17 22:15                               ` Eric Dumazet
2008-11-17 22:26                               ` Ingo Molnar
2008-11-17 22:26                                 ` Ingo Molnar
2008-11-17 22:39                                 ` Eric Dumazet
2008-11-17 22:39                                   ` Eric Dumazet
2008-11-18  5:23                               ` David Miller
2008-11-18  5:23                                 ` David Miller
2008-11-18  8:45                                 ` Ingo Molnar
2008-11-18  8:45                                   ` Ingo Molnar
2008-11-17 22:14                           ` tcp_transmit_skb() - " Ingo Molnar
2008-11-17 22:14                             ` Ingo Molnar
2008-11-17 22:19                           ` Ingo Molnar
2008-11-17 22:19                             ` Ingo Molnar
2008-11-17 19:36                 ` David Miller
2008-11-17 19:36                   ` David Miller
2008-11-17 19:31             ` David Miller
2008-11-17 19:31               ` David Miller
2008-11-17 19:47               ` Linus Torvalds
2008-11-17 19:47                 ` Linus Torvalds
2008-11-17 19:51                 ` David Miller
2008-11-17 19:51                   ` David Miller
2008-11-17 19:53                 ` Ingo Molnar
2008-11-17 19:53                   ` Ingo Molnar
2008-11-17 22:47               ` Ingo Molnar
2008-11-17 22:47                 ` Ingo Molnar
2008-11-17 19:21         ` David Miller
2008-11-17 19:21           ` David Miller
2008-11-17 19:48           ` Linus Torvalds
2008-11-17 19:48             ` Linus Torvalds
2008-11-17 19:52             ` David Miller
2008-11-17 19:52               ` David Miller
2008-11-17 19:57               ` Linus Torvalds
2008-11-17 19:57                 ` Linus Torvalds
2008-11-17 20:18                 ` David Miller
2008-11-17 20:18                   ` David Miller
2008-11-19 19:43     ` Christoph Lameter
2008-11-19 19:43       ` Christoph Lameter
2008-11-19 20:14       ` Ingo Molnar
2008-11-19 20:14         ` Ingo Molnar
2008-11-20 23:52       ` Christoph Lameter
2008-11-20 23:52         ` Christoph Lameter
2008-11-21  8:30         ` Ingo Molnar
2008-11-21  8:30           ` Ingo Molnar
2008-11-21  8:51           ` Eric Dumazet
2008-11-21  8:51             ` Eric Dumazet
2008-11-21  9:05             ` David Miller
2008-11-21  9:05               ` David Miller
2008-11-21 12:51               ` Eric Dumazet
2008-11-21 12:51                 ` Eric Dumazet
2008-11-21 15:13                 ` [PATCH] fs: pipe/sockets/anon dentries should not have a parent Eric Dumazet
2008-11-21 15:13                   ` Eric Dumazet
2008-11-21 15:21                   ` Ingo Molnar
2008-11-21 15:21                     ` Ingo Molnar
2008-11-21 15:28                     ` Eric Dumazet
2008-11-21 15:28                       ` Eric Dumazet
2008-11-21 15:34                       ` Ingo Molnar
2008-11-21 15:34                         ` Ingo Molnar
2008-11-26 23:27                         ` [PATCH 0/6] fs: Scalability of sockets/pipes allocation/deallocation on SMP Eric Dumazet
2008-11-27  1:37                           ` Christoph Lameter
2008-11-27  1:37                             ` Christoph Lameter
2008-11-27  6:27                             ` Eric Dumazet
2008-11-27  6:27                               ` Eric Dumazet
2008-11-27 14:44                               ` Christoph Lameter
2008-11-27 14:44                                 ` Christoph Lameter
2008-11-27  9:39                           ` Christoph Hellwig
2008-11-28 18:03                           ` Ingo Molnar
2008-11-28 18:47                             ` Peter Zijlstra
2008-11-28 18:47                               ` Peter Zijlstra
2008-11-29  6:38                               ` Christoph Hellwig
2008-11-29  6:38                                 ` Christoph Hellwig
2008-11-29  8:07                                 ` Eric Dumazet
2008-11-29  8:07                                   ` Eric Dumazet
2008-11-29  8:43                           ` [PATCH v2 0/5] " Eric Dumazet
2008-11-29  8:43                             ` Eric Dumazet
2008-12-11 22:38                             ` [PATCH v3 0/7] " Eric Dumazet
2008-12-11 22:38                               ` Eric Dumazet
2008-12-11 22:38                             ` [PATCH v3 1/7] fs: Use a percpu_counter to track nr_dentry Eric Dumazet
2008-12-11 22:38                               ` Eric Dumazet
2007-07-24  1:24                               ` Nick Piggin
2007-07-24  1:24                                 ` Nick Piggin
2008-12-16 21:04                               ` Paul E. McKenney
2008-12-16 21:04                                 ` Paul E. McKenney
2008-12-11 22:39                             ` [PATCH v3 2/7] fs: Use a percpu_counter to track nr_inodes Eric Dumazet
2008-12-11 22:39                               ` Eric Dumazet
2007-07-24  1:30                               ` Nick Piggin
2007-07-24  1:30                                 ` Nick Piggin
2008-12-12  5:11                                 ` Eric Dumazet
2008-12-12  5:11                                   ` Eric Dumazet
2008-12-16 21:10                               ` Paul E. McKenney
2008-12-16 21:10                                 ` Paul E. McKenney
2008-12-11 22:39                             ` [PATCH v3 3/7] fs: Introduce a per_cpu last_ino allocator Eric Dumazet
2008-12-11 22:39                               ` Eric Dumazet
2007-07-24  1:34                               ` Nick Piggin
2007-07-24  1:34                                 ` Nick Piggin
2008-12-16 21:26                               ` Paul E. McKenney
2008-12-16 21:26                                 ` Paul E. McKenney
2008-12-11 22:39                             ` [PATCH v3 4/7] fs: Introduce SINGLE dentries for pipes, socket, anon fd Eric Dumazet
2008-12-11 22:39                               ` Eric Dumazet
2008-12-16 21:40                               ` Paul E. McKenney
2008-12-16 21:40                                 ` Paul E. McKenney
2008-12-11 22:40                             ` [PATCH v3 5/7] fs: new_inode_single() and iput_single() Eric Dumazet
2008-12-11 22:40                               ` Eric Dumazet
2008-12-16 21:41                               ` Paul E. McKenney
2008-12-16 21:41                                 ` Paul E. McKenney
2008-12-11 22:40                             ` [PATCH v3 6/7] fs: struct file move from call_rcu() to SLAB_DESTROY_BY_RCU Eric Dumazet
2008-12-11 22:40                               ` Eric Dumazet
2007-07-24  1:13                               ` Nick Piggin
2007-07-24  1:13                                 ` Nick Piggin
2007-07-24  1:13                                 ` Nick Piggin
2008-12-12  2:50                                 ` Nick Piggin
2008-12-12  2:50                                   ` Nick Piggin
2008-12-12  4:45                                 ` Eric Dumazet
2008-12-12  4:45                                   ` Eric Dumazet
2008-12-12 16:48                                   ` Eric Dumazet
2008-12-12 16:48                                     ` Eric Dumazet
2008-12-13  2:07                                     ` Christoph Lameter
2008-12-13  2:07                                       ` Christoph Lameter
2008-12-17 20:25                                       ` Eric Dumazet
2008-12-17 20:25                                         ` Eric Dumazet
2008-12-13  1:41                                   ` Christoph Lameter
2008-12-13  1:41                                     ` Christoph Lameter
2008-12-11 22:41                             ` [PATCH v3 7/7] fs: MS_NOREFCOUNT Eric Dumazet
2008-12-11 22:41                               ` Eric Dumazet
2008-11-29  8:43                           ` [PATCH v2 1/5] fs: Use a percpu_counter to track nr_dentry Eric Dumazet
2008-11-29  8:43                             ` Eric Dumazet
2008-11-29  8:43                           ` [PATCH v2 2/5] fs: Use a percpu_counter to track nr_inodes Eric Dumazet
2008-11-29  8:43                             ` Eric Dumazet
2008-11-29  8:44                           ` [PATCH v2 3/5] fs: Introduce a per_cpu last_ino allocator Eric Dumazet
2008-11-29  8:44                             ` Eric Dumazet
2008-11-29  8:44                           ` [PATCH v2 4/5] fs: Introduce SINGLE dentries for pipes, socket, anon fd Eric Dumazet
2008-11-29  8:44                             ` Eric Dumazet
2008-11-29 10:38                             ` Jörn Engel
2008-11-29 10:38                               ` Jörn Engel
2008-11-29 10:38                               ` Jörn Engel
2008-11-29 11:14                               ` Eric Dumazet
2008-11-29 11:14                                 ` Eric Dumazet
2008-11-29  8:45                           ` [PATCH v2 5/5] fs: new_inode_single() and iput_single() Eric Dumazet
2008-11-29  8:45                             ` Eric Dumazet
2008-11-29 11:14                             ` Jörn Engel
2008-11-29 11:14                               ` Jörn Engel
2008-11-29 11:14                               ` Jörn Engel
2008-11-26 23:30                         ` [PATCH 1/6] fs: Introduce a per_cpu nr_dentry Eric Dumazet
2008-11-26 23:30                           ` Eric Dumazet
2008-11-27  9:41                           ` Christoph Hellwig
2008-11-27  9:41                             ` Christoph Hellwig
2008-11-26 23:32                         ` [PATCH 3/6] fs: Introduce a per_cpu last_ino allocator Eric Dumazet
2008-11-27  9:46                           ` Christoph Hellwig
2008-11-27  9:46                             ` Christoph Hellwig
2008-11-26 23:32                         ` [PATCH 4/6] fs: Introduce a per_cpu nr_inodes Eric Dumazet
2008-11-26 23:32                           ` Eric Dumazet
2008-11-27  9:32                           ` Peter Zijlstra
2008-11-27  9:39                             ` Peter Zijlstra
2008-11-27  9:39                               ` Peter Zijlstra
2008-11-27  9:48                               ` Christoph Hellwig
2008-11-27 10:01                             ` Eric Dumazet
2008-11-27 10:01                               ` Eric Dumazet
2008-11-27 10:07                             ` Andi Kleen
2008-11-27 14:46                             ` Christoph Lameter
2008-11-26 23:32                         ` [PATCH 5/6] fs: Introduce special inodes Eric Dumazet
2008-11-26 23:32                           ` Eric Dumazet
2008-11-27  8:20                           ` David Miller
2008-11-27  8:20                             ` David Miller
2008-11-26 23:32                         ` [PATCH 6/6] fs: Introduce kern_mount_special() to mount special vfs Eric Dumazet
2008-11-27  8:21                           ` David Miller
2008-11-27  8:21                             ` David Miller
2008-11-27  9:53                           ` Christoph Hellwig
2008-11-27 10:04                             ` Eric Dumazet
2008-11-27 10:04                               ` Eric Dumazet
2008-11-27 10:10                               ` Christoph Hellwig
2008-11-27 10:10                                 ` Christoph Hellwig
2008-11-28  9:26                           ` Al Viro
2008-11-28  9:26                             ` Al Viro
2008-11-28  9:34                             ` Al Viro
2008-11-28  9:34                               ` Al Viro
2008-11-28 18:02                             ` Ingo Molnar
2008-11-28 18:02                               ` Ingo Molnar
2008-11-28 18:58                               ` Ingo Molnar
2008-11-28 22:20                               ` Eric Dumazet
2008-11-28 22:20                                 ` Eric Dumazet
2008-11-28 22:37                             ` Eric Dumazet
2008-11-28 22:43                               ` Eric Dumazet
2008-11-21 15:36                   ` [PATCH] fs: pipe/sockets/anon dentries should not have a parent Christoph Hellwig
2008-11-21 17:58                     ` [PATCH] fs: pipe/sockets/anon dentries should have themselves as parent Eric Dumazet
2008-11-21 18:43                       ` Matthew Wilcox
2008-11-21 18:43                         ` Matthew Wilcox
2008-11-23  3:53                         ` Eric Dumazet [this message]
2008-11-21  9:18             ` [Bug #11308] tbench regression on each kernel release from 2.6.22 -&gt; 2.6.28 Ingo Molnar
2008-11-21  9:18               ` Ingo Molnar
2008-11-21  9:03           ` David Miller
2008-11-21  9:03             ` David Miller
2008-11-21 16:11           ` Christoph Lameter
2008-11-21 16:11             ` Christoph Lameter
2008-11-21 18:06             ` Christoph Lameter
2008-11-21 18:06               ` Christoph Lameter
2008-11-21 18:16               ` Eric Dumazet
2008-11-21 18:16                 ` Eric Dumazet
2008-11-21 18:19                 ` Eric Dumazet
2008-11-21 18:19                   ` Eric Dumazet
2008-11-16 17:40 ` [Bug #11664] acpi errors and random freeze on sony vaio sr Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-16 17:40 ` [Bug #11698] 2.6.27-rc7, freezes with &gt; 1 s2ram cycle Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-16 17:40 ` [Bug #11404] BUG: in 2.6.23-rc3-git7 in do_cciss_intr Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-17 16:19   ` Randy Dunlap
2008-11-16 17:40 ` [Bug #11569] Panic stop CPUs regression Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-16 17:40 ` [Bug #11543] kernel panic: softlockup in tick_periodic() ??? Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-16 17:40 ` [Bug #11836] Scheduler on C2D CPU and latest 2.6.27 kernel Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-16 17:40 ` [Bug #11805] mounting XFS produces a segfault Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-17 14:44   ` Christoph Hellwig
2008-11-17 14:44     ` Christoph Hellwig
2008-11-16 17:40 ` [Bug #11795] ks959-sir dongle no longer works under 2.6.27 (REGRESSION) Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-16 17:40 ` [Bug #11865] WOL for E100 Doesn't Work Anymore Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-16 17:40 ` [Bug #11843] usb hdd problems with 2.6.27.2 Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-16 21:37   ` Luciano Rocha
2008-11-16 17:40 ` [Bug #11876] RCU hang on cpu re-hotplug with 2.6.27rc8 Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-16 17:40 ` [Bug #11886] without serial console system doesn't poweroff Rafael J. Wysocki
2008-11-16 17:40   ` Rafael J. Wysocki
2008-11-16 17:41 ` [Bug #12039] Regression: USB/DVB 2.6.26.8 --&gt; 2.6.27.6 Rafael J. Wysocki
2008-11-16 17:41   ` Rafael J. Wysocki
2008-11-16 17:41 ` [Bug #11983] iwlagn: wrong command queue 31, command id 0x0 Rafael J. Wysocki
2008-11-16 17:41   ` Rafael J. Wysocki
2008-11-16 17:41 ` [Bug #12048] Regression in bonding between 2.6.26.8 and 2.6.27.6 Rafael J. Wysocki
2008-11-16 17:41   ` Rafael J. Wysocki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4928D3A9.8060805@cosmosbay.com \
    --to=dada1@cosmosbay.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=cl@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=efault@gmx.de \
    --cc=hch@infradead.org \
    --cc=kernel-testers@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthew@wil.cx \
    --cc=mingo@elte.hu \
    --cc=netdev@vger.kernel.org \
    --cc=rjw@sisk.pl \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.