freebsd-dev/sys
Alexander Motin 02a9923034 Switch from mutexes to atomics in GEOM_DEV I/O path.
Mutexes in I/O path there were used twice per I/O to atomically access
several variables to close and/or destroy the device on last request
completion.  I found the way to fit all required info into one integer,
suitable for atomic operations.  It opened race window on device close,
but addition of timeout to the msleep() there should cover it.

Profiling shows removal of significant spinning time on those mutexes
and IOPS increase from ~600K to >800K to NVMe on 72-core systems.

MFC after:	1 month
Sponsored by:	iXsystems, Inc.
2018-12-27 19:15:24 +00:00
..
amd64 Remove iBCS2, part2: general kernel 2018-12-19 21:57:58 +00:00
arm Remove iBCS2, part2: general kernel 2018-12-19 21:57:58 +00:00
arm64 Pass VM_PROT_EXECUTE to vm_fault for instruction faults. 2018-12-27 14:14:41 +00:00
bsm
cam add a knob that disables detection of write protected disks 2018-12-17 16:01:37 +00:00
cddl MFV r342532: 5882 Temporary pool names 2018-12-26 11:03:14 +00:00
compat Remove iBCS2, part2: general kernel 2018-12-19 21:57:58 +00:00
conf Remove iBCS2, part2: general kernel 2018-12-19 21:57:58 +00:00
contrib Remove another empty #ifdef block. This empty block also exists in 2018-12-27 04:53:53 +00:00
crypto Generalize AES iov optimization 2018-12-13 04:40:53 +00:00
ddb ddb: Enable 'thread <address>' 2018-10-20 20:45:49 +00:00
dev Reimplement nvd(4) detach handling. 2018-12-27 18:28:19 +00:00
dts arm64: allwinner: Fix pwm dtso 2018-12-12 21:10:34 +00:00
fs When loading an inode from disk, verify that its mode is valid. 2018-12-27 07:18:53 +00:00
gdb
geom Switch from mutexes to atomics in GEOM_DEV I/O path. 2018-12-27 19:15:24 +00:00
gnu Update our devicetree to 4.19 for arm and arm64 2018-11-10 21:02:32 +00:00
i386 Remove iBCS2, part3: the implementation 2018-12-19 22:02:49 +00:00
isa Reapply, with minor tweaks, r338025, from the original commit: 2018-09-26 17:12:14 +00:00
kern When loading an inode from disk, verify that its mode is valid. 2018-12-27 07:18:53 +00:00
kgssapi OpenCrypto: Convert sessions to opaque handles instead of integers 2018-07-18 00:56:25 +00:00
libkern mcount: tidy up ANSIfication 2018-10-20 22:39:35 +00:00
mips Add note to 32-bit mips smp config files documenting the status 2018-12-19 23:22:14 +00:00
modules Include the new TPM 2.0 driver in the TPM module. 2018-12-19 22:43:10 +00:00
net Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
net80211 net80211: fix out-of-bounds read in ieee80211_amrr(9). 2018-12-19 03:08:10 +00:00
netgraph Allow ng_nat to be attached to a ethernet interface directly via ng_ether(4) 2018-12-17 16:00:35 +00:00
netinet Fix a regression in the TCP handling of received segments. 2018-12-20 16:05:30 +00:00
netinet6 Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
netipsec Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
netpfil pf: Fix endless loop on NAT exhaustion with sticky-address 2018-12-12 20:15:06 +00:00
netsmb Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
nfs
nfsclient
nfsserver
nlm
ofed ipoib: Notify on modify QP failure only when relevant 2018-12-05 13:27:17 +00:00
opencrypto Plug memory leak for AES_*_NIST_GMAC algorithms. 2018-12-13 08:59:51 +00:00
powerpc Remove iBCS2, part2: general kernel 2018-12-19 21:57:58 +00:00
riscv Remove iBCS2, part2: general kernel 2018-12-19 21:57:58 +00:00
rpc Add kern.rpc.gss.client_max, to make it possible to bump it easily. 2018-12-15 11:32:11 +00:00
security mac: reduce pessimization of sdt probe handling 2018-12-19 22:30:26 +00:00
sparc64 Remove iBCS2, part2: general kernel 2018-12-19 21:57:58 +00:00
sys Enable sys/random.h #include from C++ 2018-12-24 19:37:10 +00:00
teken Implement ECMA-48 "REP", some Linuxen have started emitting them recently. 2018-10-21 08:29:36 +00:00
tests epoch_test: fix compile 2018-07-15 00:31:17 +00:00
tools make_dtb.sh: Use $CPP instead of assuming that cpp is in $PATH 2018-12-14 23:53:28 +00:00
ufs When loading an inode from disk, verify that its mode is valid. 2018-12-27 07:18:53 +00:00
vm Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
x86 add support for marking interrupt handlers as suspended 2018-12-17 17:11:00 +00:00
xdr
xen xen: legacy PVH fixes for the new interrupt count 2018-09-13 07:14:11 +00:00
Makefile