3982d959c5
The Linux kernel's rwsem's have never provided an interface to allow a reader to be upgraded to a writer. Historically, this functionality has been implemented by a SPL wrapper function. However, this approach depends on internal knowledge of the rw_semaphore and is therefore rather brittle. Since the ZFS code must always be able to fallback to rw_exit() and rw_enter() when an rw_tryupgrade() fails; this functionality isn't critical. Furthermore, the only potentially performance sensitive consumer is dmu_zfetch() and no decrease in performance was observed with this change applied. See the PR comments for additional testing details. Therefore, it is being retired to make the build more robust and to simplify the rwlock implementation. Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #9029 |
||
---|---|---|
.. | ||
Makefile.in | ||
README.md | ||
THIRDPARTYLICENSE.gplv2 | ||
THIRDPARTYLICENSE.gplv2.descrip | ||
spl-atomic.c | ||
spl-condvar.c | ||
spl-cred.c | ||
spl-err.c | ||
spl-generic.c | ||
spl-kmem-cache.c | ||
spl-kmem.c | ||
spl-kobj.c | ||
spl-kstat.c | ||
spl-mutex.c | ||
spl-proc.c | ||
spl-procfs-list.c | ||
spl-rwlock.c | ||
spl-taskq.c | ||
spl-thread.c | ||
spl-tsd.c | ||
spl-vmem.c | ||
spl-vnode.c | ||
spl-xdr.c | ||
spl-zlib.c |
README.md
The Solaris Porting Layer, SPL, is a Linux kernel module which provides a compatibility layer used by the ZFS on Linux project.
Installation
The latest version of the SPL is maintained as part of this repository. Only when building ZFS version 0.7.x or earlier must an external SPL release be used. These releases can be found at:
- Version 0.7.x: https://github.com/zfsonlinux/spl/tree/spl-0.7-release
- Version 0.6.5.x: https://github.com/zfsonlinux/spl/tree/spl-0.6.5-release
Release
The SPL is released under a GPLv2 license.
For more details see the NOTICE and THIRDPARTYLICENSE files; UCRL-CODE-235197