Re: [patch] voluntary-preempt-2.6.8.1-P9

From: Ingo Molnar
Date: Sat Aug 28 2004 - 02:37:17 EST



* Lee Revell <rlrevell@xxxxxxxxxxx> wrote:

> I am seeing large latencies (600-2000 usec) latencies in
> dcache_readdir. This started when the machine became a Samba server
> and the dcache presumably got large. Traces are at the above url (8
> and 9 I believe). I think this patch fixes it.
>
> --- fs/libfs.c~ 2004-08-14 06:54:47.000000000 -0400
> +++ fs/libfs.c 2004-08-27 00:44:17.000000000 -0400
> @@ -140,6 +140,7 @@
> }
> for (p=q->next; p != &dentry->d_subdirs; p=p->next) {
> struct dentry *next;
> + voluntary_resched_lock(&dcache_lock);
> next = list_entry(p, struct dentry, d_child);
> if (d_unhashed(next) || !next->d_inode)
> continue;

In this loop we are iterating over the child-directories of this
directory. In the next line (not shown in this patch) we drop the
dcache_lock - so the issue is the 'continue' - where we skip already
deleted entries. Are you positive this fixes the latencies you are
seeing? The 'deleted entries' situation ought to be relatively rare.

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