[OpenAFS-devel] locking fairness on Linux?

John S. Bucy bucy-openafs-devel@gloop.org
Thu, 5 May 2005 16:36:11 -0400


On Thu, May 05, 2005 at 12:15:01PM -0400, Chaskiel M Grundman wrote:

> >Also, it pipelines nicely if I run it in separate directories; the
> >throughput goes up linearly at least for the first few processes.
> I don't think this will happen with a single directory even if 
> the scheduling becomes "fair". the vcache object *will* be locked across 
> rpcs that are intended to update it. If your goal is to increase 
> aggregate throughput, I don't think this will help. if your goal is to 
> reduce individual process "latency", then I don't much care.

I don't think the struct vcache lock is the source of this behavior;
even if the tasks access different sets of files in the same
directory, I still see the same thing.

I also notice that this extends to e.g. trying to run ls on the
directory that the test is running in, trying to chdir through it,
etc.  All such tasks are blocked in D until the busy one stops.

I know that this workload is missing the dnlc and doing a real lookup
for probably every stat ... I wonder if some contention up in the
lookup path could be causing this problem before we even get to the
vcache.



john