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

Ingo Molnar
2004-08-20T18:58:35Z

* K.R. Foley <kr@cybsft.com> wrote:

> Here is a latency trace generated by the NFS compile in the
> stress-kernel. It is ~1.7 ms which doesn't really surprise me for the
> NFS compile. I am going to take the NFS compile out of the test now
> and see what else falls out.

NFS uses lock_kernel() for most of its locking. This means that the
sharing and locking rules and assumptions are not clear (it's all within
this opaque lock). I tried to figure out whether it would be safe to do
a lock-break in nfs_cached_lookup() but it's quite hard ... Please bug
the NFS-client maintainer(s) about this. To break this latency we'd have
to do a lock-break in fs/nfs/dir.c:nfs_cached_lookup()'s main loop:

for(;(page = find_get_page(dir->i_mapping, desc.page_index)); desc.page_index++) {

res = -EIO;

you could try this at the end of the loop:

if (res == 0)
goto out_found;
if (res != -EAGAIN)
break;
+ cond_resched();
}

but i cannot guarantee that this is correct ... It might seem to work
now but break later under load, etc. It's the NFS maintainer's call.

> If it would be useful for me to provide additional information with
> this, please let me know.

reports like this are perfect for most latencies. I tried to include
everything that is needed normally in /proc/latency_trace itself.

Ingo