Re: [Lse-tech] [PATCH] 2.5.5-dj2 - Fast Walk Dcache to Decrease Cacheline Bouncing

From: Hanna Linder (hannal@us.ibm.com)
Date: Tue Mar 05 2002 - 14:16:25 EST


--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/



This archive was generated by hypermail 2b29 : Thu Mar 07 2002 - 21:00:46 EST