Messages in this thread | | | Date | Tue, 05 Mar 2002 11:16:25 -0800 | From | Hanna Linder <> | Subject | Re: [Lse-tech] [PATCH] 2.5.5-dj2 - Fast Walk Dcache to Decrease Cacheline Bouncing |
| |
--On Tuesday, March 05, 2002 04:30:00 +0100 Juan Quintela <quintela@mandrakesoft.com> wrote: > > hanna> struct dentry * d_lookup(struct dentry * parent, struct qstr * name) > hanna> { > hanna> + struct dentry *dentry = NULL; > > Not needed.
Good catch. Changed. > > Would you mean retest if the speed is the same using lik the old code
Any tests people would like to see that might increase the chance of it getting accepted. > > I think that it should not made difference, and code is IMHO, more > readadble (and you don't duplicate walk_init_root). > There is a difference. The reviewer of the first submission also missed it. path_lookup duplicates walk_init_root because mntget and dget are not called when the dcache_lock is held. So it is not an exact copy of walk_init_root.
The point of this is to find all the dentries in the path being walked already in the dcache (aka the easy lookups) without bumping the reference counter for every single dentry. On SMP this can lead to cacheline bouncing. When a dentry is not found in the cache then call mntget and dget followed by releasing the dcache_lock to continue. Al Viro came up with this idea, I have implemented it.
The lockmeter results and patch are here: http://lse.sf.net/locking
Hanna Linder (hannal@us.ibm.com) IBM Linux Technology Center
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |