[$] Range reader/writer locks for the kernel
The kernel uses a variety of lock types internally, but they all share onefeature in common: they are a simple either/or proposition. When a lock isobtained for a resource, the entire resource is locked, even ifexclusive access is only needed to a part of that resource. Many resourcesmanaged by the kernel are complex entities for which it may make sense toonly lock a smaller part; files (consisting of a range of bytes) or aprocess's address space are examples of this type of resource. For years,kernel developers have talked about adding "range locks" - locks that wouldonly apply to a portion of a given resource - as a way of increasingconcurrency. Work has progressed in thatarea, and range locks may soon be added to the kernel's locking toolkit.