freebsd-dev/sys
Alexander Motin 321f819ba5 Refactor command ordering/blocking mechanism in CTL.
Replace long per-LUN queue of blocked commands, scanned on each command
completion and sometimes even twice, causing up to O(n^^2) processing cost,
by much shorter per-command blocked queues, scanned only when respective
command completes, and check only commands before the previous blocker,
reducing cost to O(n).

While there, unblock aborted commands to make them "complete" ASAP to be
removed from the OOA queue and so not waste time ordering other commands
against them.  Aborted commands that were not sent to execution yet should
have no visible side effects, so this is safe and easy optimization now,
comparing to commands already in processing, which are a still pain.

Together those two optimizations should fix quite pathological case, when
due to backend slowness CTL accumulated many thousands of blocked requests,
partially aborted by initiator and so supposedly not even existing, but
still wasting CTL CPU time.

MFC after:	2 weeks
Sponsored by:	iXsystems, Inc.
2019-02-27 21:29:21 +00:00
..
amd64 Add kernel support for Intel userspace protection keys feature on 2019-02-20 09:51:13 +00:00
arm Add base to the warning threshold. 2019-02-22 03:11:27 +00:00
arm64 xhci_mv: Move the driver to generic_xhci 2019-02-27 21:04:40 +00:00
bsm Create new EINTEGRITY error with message "Integrity check failed". 2019-01-17 06:35:45 +00:00
cam Refactor command ordering/blocking mechanism in CTL. 2019-02-27 21:29:21 +00:00
cddl Fix fasttrap_sig{trap,segv}(). 2019-02-26 18:20:41 +00:00
compat import linux debugfs support 2019-02-23 20:56:41 +00:00
conf xhci_mv: Move the driver to generic_xhci 2019-02-27 21:04:40 +00:00
contrib Modularize xz. 2019-02-26 19:55:03 +00:00
crypto Regularize the Netflix copyright 2019-02-04 21:28:25 +00:00
ddb ddb: Print the thread's pcb in 'show thread' 2019-02-09 21:08:19 +00:00
dev xhci_mv: Move the driver to generic_xhci 2019-02-27 21:04:40 +00:00
dts Adapt FreeBSD specific DT stub for Jetson TK1 board to be consistent with 2019-02-06 06:03:44 +00:00
fs fuse: Fix a regression introduced in r337165 2019-02-21 02:41:57 +00:00
gdb
geom Modularize xz. 2019-02-26 19:55:03 +00:00
gnu gcov support 2019-02-23 21:14:00 +00:00
i386 i386 PAE: avoid atomic for pte_store() where possible. 2019-02-26 09:45:44 +00:00
isa
kern Improve vmem tuning for platforms without a direct map. 2019-02-25 19:22:13 +00:00
kgssapi * Handle SIGPIPE in gssd 2019-02-21 01:30:37 +00:00
libkern Add non-sleepable strdup variant strdup_flags 2019-02-20 20:48:10 +00:00
mips Modularize xz. 2019-02-26 19:55:03 +00:00
modules Make it possible to load fdt_slicer as a module (unloading works too fwiw). 2019-02-26 22:34:29 +00:00
net iflib: Improve return values of interrupt handlers. 2019-02-15 18:51:43 +00:00
net80211 net80211(4): hide casts for 'i_seq' field offset calculation inside 2019-02-10 23:58:56 +00:00
netgraph Remove remnants of byte order manipulation, back when FreeBSD stack 2019-02-09 03:00:00 +00:00
netinet Various cleanups to the management of multiple TCP stacks. 2019-02-27 20:24:23 +00:00
netinet6 When dropping a fragment queue count the number of fragments in the queue 2019-02-19 19:57:55 +00:00
netipsec Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
netpfil pf: Small performance tweak 2019-02-24 17:23:55 +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 Fix another bug introduced during the review process of r344140: 2019-02-25 19:14:16 +00:00
powerpc powerpc/mpc85xx: Synchronize timebase the platform correct way 2019-02-27 03:30:49 +00:00
riscv Add kernel support for Intel userspace protection keys feature on 2019-02-20 09:51:13 +00:00
rpc Bump the default kern.rpc.gss.client_max from 128 to 1024. 2019-02-19 11:07:02 +00:00
security Create new EINTEGRITY error with message "Integrity check failed". 2019-01-17 06:35:45 +00:00
sparc64 Add kernel support for Intel userspace protection keys feature on 2019-02-20 09:51:13 +00:00
sys Update a comment to reflect reality; no functional changes. 2019-02-26 22:07:59 +00:00
teken Attempt to complete fixing programmable function keys for syscons. 2019-02-20 02:14:41 +00:00
tests Regularize the Netflix copyright 2019-02-04 21:28:25 +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 FFS: allow sendfile(2) to work with block sizes greater than the page size 2019-02-26 04:56:10 +00:00
vm Fix incorrect assertion in vnode_pager_generic_getpages() 2019-02-26 04:50:46 +00:00
x86 Add usermode helpers for for Intel userspace protection keys feature. 2019-02-20 09:56:23 +00:00
xdr
xen xen: introduce a new way to setup event channel upcall 2019-01-30 11:34:52 +00:00
Makefile