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