]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r268865: MFV r268852:
authordelphij <delphij@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 2 Aug 2014 04:06:35 +0000 (04:06 +0000)
committerdelphij <delphij@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 2 Aug 2014 04:06:35 +0000 (04:06 +0000)
commita140ef06dd0c5b7cb117292649dfeb42e088e6ef
tree999367b0df22064fd8ad8df6c9f3a949f048b01c
parent326dc9e4e2ac5a84338ffecc168a367fc56e6f2c
MFC r268865: MFV r268852:

Reduce lock contention on the z_teardown_lock under heavily cached
read workload by splitting the single teardown rrw lock into
RRM_NUM_LOCKS (17) of them.

Read acquisitions are randomly distributed among these locks based
on curthread pointer.  Write acquisitions are going to all the
locks, which for the usage of this type of lock should be rare.

Illumos issue:
    5008 lock contention (rrw_exit) while running a read only load

git-svn-id: svn://svn.freebsd.org/base/stable/10@269419 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/rrwlock.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/rrwlock.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_vfsops.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c