svn commit: r268852 - in vendor-sys/illumos/dist/uts/common/fs/zfs: . sys

Alexander Motin mav at FreeBSD.org
Sat Jul 19 18:32:32 UTC 2014


On 19.07.2014 13:42, Robert Watson wrote:
> On Fri, 18 Jul 2014, Xin LI wrote:
> 
>> Log:
>>  5008 lock contention (rrw_exit) while running a read only load
>>  Reviewed by: Matthew Ahrens <matthew.ahrens at delphix.com>
>>  Reviewed by: George Wilson <george.wilson at delphix.com>
>>  Reviewed by: Alex Reece <alex.reece at delphix.com>
>>  Reviewed by: Christopher Siden <christopher.siden at delphix.com>
>>  Reviewed by: Richard Yao <ryao at gentoo.org>
>>  Reviewed by: Saso Kiselkov <skiselkov.ml at gmail.com>
>>  Approved by: Garrett D'Amore <garrett at damore.org>
>>
>>  illumos/illumos-gate at c9030f6c93613fe30ee0c16f92b96da7816ac052
> 
> Is there an opportunity to use our own read-mostly lock implementation
> here? It should be substantially more scalable, has integration with
> WITNESS, proper priority propagation, etc.

Our rmlock(4) tells: "Writers are permitted to sleep while holding a
read-mostly lock, but readers are not."  That is not acceptable for ZFS,
which allocates memory in many places.

Also the rrw locks used there have specific recursion semantics: readers
are allowed to recurse on the lock even when there is waiting writer.
But first read acquisition at the same situation is not allowed. I am
not sure whether out rmlocks can do the same.

-- 
Alexander Motin


More information about the svn-src-vendor mailing list