freebsd-dev/sys
Alexander Motin 56eee7cbb4 Reimplement BIO_ORDERED handling in nvd(4).
This fixes BIO_ORDERED semantics while also improving performance by:
 - sleeping also before BIO_ORDERED bio, as defined, not only after;
 - not queueing BIO_ORDERED bio to taskqueue if no other bios running;
 - waking up sleeping taskqueue explicitly rather then rely on polling.

On Samsung SSD 970 PRO this shows sync write latency, measured with
`diskinfo -wS`, reduction from ~2ms to ~1.1ms by not sleeping without
reason till next HZ tick.

On the same device ZFS pool with 8 ZVOLs synchronously writing 4KB blocks
shows ~950 IOPS instead of ~750 IOPS before.  I suspect ZFS does not need
BIO_ORDERED on BIO_FLUSH at all, but that will be next question.

MFC after:	2 weeks
Sponsored by:	iXsystems, Inc.
2019-01-29 20:35:09 +00:00
..
amd64 Extract the coverage sanitizer KPI to a new file. 2019-01-29 11:04:17 +00:00
arm awg: fix soft reset failure with no link 2019-01-21 14:35:36 +00:00
arm64 Follow arm[32] and sparc64 KAPI and provide the FreeBSD standard spelling 2019-01-29 20:10:27 +00:00
bsm Create new EINTEGRITY error with message "Integrity check failed". 2019-01-17 06:35:45 +00:00
cam Add NO_6_BYTE / NO_SYNC_CACHE quirks for (C|D|E).* Olympus digital cameras 2019-01-27 17:51:49 +00:00
cddl zfs: allow to change cache flush sysctl 2019-01-26 13:53:00 +00:00
compat Add full support for PCI_ANY_ID when matching PCI IDs in the LinuxKPI. 2019-01-25 20:13:28 +00:00
conf Extract the coverage sanitizer KPI to a new file. 2019-01-29 11:04:17 +00:00
contrib dpaa: fix 32-bit build 2019-01-19 05:20:31 +00:00
crypto Generalize AES iov optimization 2018-12-13 04:40:53 +00:00
ddb
dev Reimplement BIO_ORDERED handling in nvd(4). 2019-01-29 20:35:09 +00:00
dts [rpi] Reorganize spigen(4) overlays for Raspberry Pi 2019-01-16 01:08:34 +00:00
fs ext2fs: Add some extra consistency checks for the superblock. 2019-01-25 22:22:29 +00:00
gdb
geom geom_uzip(4): set 'gp != NULL' assertion on top of the function 2019-01-26 17:17:25 +00:00
gnu Import DTS from Linux 4.20 2019-01-11 09:40:34 +00:00
i386 Garbage collect AH_SUPPORT_AR5416 config option. 2019-01-25 13:48:40 +00:00
isa
kern Extract the coverage sanitizer KPI to a new file. 2019-01-29 11:04:17 +00:00
kgssapi
libkern
mips [mips] Fix error condition check that always evaluates to false 2019-01-25 20:14:28 +00:00
modules Garbage collect AH_SUPPORT_AR5416 config option. 2019-01-25 13:48:40 +00:00
net - In _iflib_fl_refill(), don't mark an RX buffer as available in the 2019-01-26 21:35:51 +00:00
net80211 Remove 2GHz channel list copies from wireless drivers. 2019-01-26 17:00:55 +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 the detection of ECN-setup SYN-ACK packets. 2019-01-28 12:45:31 +00:00
netinet6 Fix refcounting leaks in IPv6 MLD code leading to loss of IPv6 2019-01-24 08:34:13 +00:00
netipsec Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
netpfil Fix the bug introduced in r342908, that causes problems with dynamic 2019-01-29 11:18:41 +00:00
netsmb Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
nfs
nfsclient
nfsserver
nlm
ofed Mechanical cleanup of epoch(9) usage in network stack. 2019-01-09 01:11:19 +00:00
opencrypto Plug memory leak for AES_*_NIST_GMAC algorithms. 2018-12-13 08:59:51 +00:00
powerpc Garbage collect AH_SUPPORT_AR5416 config option. 2019-01-25 13:48:40 +00:00
riscv Follow arm[32] and sparc64 KAPI and provide the FreeBSD standard spelling 2019-01-29 20:10:27 +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 Create new EINTEGRITY error with message "Integrity check failed". 2019-01-17 06:35:45 +00:00
sparc64 Garbage collect AH_SUPPORT_AR5416 config option. 2019-01-25 13:48:40 +00:00
sys Extract the coverage sanitizer KPI to a new file. 2019-01-29 11:04:17 +00:00
teken Implement ECMA-48 "REP", some Linuxen have started emitting them recently. 2018-10-21 08:29:36 +00:00
tests
tools make_dtb.sh: Use $CPP instead of assuming that cpp is in $PATH 2018-12-14 23:53:28 +00:00
ufs This bug was introduced with the change to use softdep_bp_to_mp() in 2019-01-28 21:36:45 +00:00
vm Correct uma_prealloc()'s use of domainset iterators after r339925. 2019-01-23 18:58:15 +00:00
x86 i386/PAE busdma: allow more bounce pages. 2019-01-18 13:43:11 +00:00
xdr
xen
Makefile