Re: [PATCH 2/6] fs: Introduce special dentries for pipes, socket,anon fd

From: David Miller
Date: Thu Nov 27 2008 - 03:20:31 EST


From: Eric Dumazet <dada1@xxxxxxxxxxxxx>
Date: Thu, 27 Nov 2008 00:31:40 +0100

> Sockets, pipes and anonymous fds have interesting properties.
...
> This patch defines a new DCACHE_SPECIAL flag, to mark a dentry as
> a special one (for sockets, pipes, anonymous fd), and a new
> d_alloc_special(const struct qstr *name, struct inode *inode)
> method, called by the three subsystems.
>
> Internally, dput() can take a fast path to dput_special() for
> special dentries, avoiding an expensive atomic_dec_and_lock()
>
> Differences betwen a special dentry and a normal one are :
>
> 1) Special dentry has the DCACHE_SPECIAL flag
> 2) Special dentry's parent are themselves.
> This to avoid taking a reference on 'root' dentry, shared
> by too many dentries.
> 3) They are not hashed into global hash table
> 4) Their d_alias list is empty
>
> (socket8 bench result : from 27.5s to 24s)
>
> Signed-off-by: Eric Dumazet <dada1@xxxxxxxxxxxxx>

Networking bits look fine:

Acked-by: David S. Miller <davem@xxxxxxxxxxxxx>
--
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/