Fine grain select locking.
Alfred Perlstein
alfred at freebsd.org
Fri Aug 3 01:45:18 UTC 2007
* Jeff Roberson <jroberson at chesapeake.net> [070802 17:52] wrote:
>
> I believe filedescriptor locking is the place where we are most lacking.
> The new sx helped tremendously. However, this is still going to be a
> scalability limiter. I have looked into both linux and solaris's solution
> to this problem. Briefly, linux uses RCU to protect the list, which is
> close to ideal as this is certainly a read heavy workload. Solaris on the
> other hand uses the actual file lock to protect the descriptor slot. So
> they fetch the file pointer, lock it, and then check to see if they lost a
> race with the slot being reassigned while they were acquiring the lock.
> This approach is perhaps better than rcu in many cases except when the
> descriptor set is expanded. Then they have to lock every file in the set.
Certainly this is an extreme edge case... ?
I could see it happening if we started with low limits, but perhaps
by keeping counters/stats we could tell people how to tune their
systems, or even autotune them.
-Alfred
More information about the freebsd-arch
mailing list