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 kernel-testers" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html