freebsd-dev/sys
Alexander Motin 3a8ce4a36b Introduce fine-grained CTL locking to improve SMP scalability.
Split global ctl_lock, historically protecting most of CTL context:
 - remaining ctl_lock now protects lists of fronends and backends;
 - per-LUN lun_lock(s) protect LUN-specific information;
 - per-thread queue_lock(s) protect request queues.
This allows to radically reduce congestion on ctl_lock.

Create multiple worker threads, depending on number of CPUs, and assign
each LUN to one of them.  This allows to spread load between multiple CPUs,
still avoiging congestion on queues and LUNs locks.

On 40-core server, exporting 5 LUNs, each backed by gstripe of SATA SSDs,
accessed via 6 iSCSI connections, this change improves peak request rate
from 250K to 680K IOPS.

MFC after:	2 weeks
Sponsored by:	iXsystems, Inc.
2014-06-25 17:02:01 +00:00
..
amd64 Add FPU_KERN_KTHR flag to fpu_kern_enter(9), which avoids saving FPU 2014-06-23 07:37:54 +00:00
arm Remove the incomplete Tegra 2 code, nobody was maintaining it. The AC100 2014-06-22 15:15:52 +00:00
boot mdoc: fix AUTHORS section. 2014-06-09 19:36:08 +00:00
bsm IFp4 @1192291: 2014-04-07 20:44:00 +00:00
cam Introduce fine-grained CTL locking to improve SMP scalability. 2014-06-25 17:02:01 +00:00
cddl MFV r260708 2014-06-25 14:23:30 +00:00
compat - Add support for SG_GET_SG_TABLESIZE IOCTL to report that we don't support 2014-06-04 12:05:47 +00:00
conf cxgbe(4): Update the bundled T4 and T5 firmwares to versions 1.11.27.0. 2014-06-22 23:40:20 +00:00
contrib Fix case where fastroute or "to interface" is used with incorrect FIB. 2014-06-19 05:45:17 +00:00
crypto Put the aesni_cipher_setup() and aesni_cipher_process() functions into 2014-06-24 06:55:49 +00:00
ddb handle longer commands so that lines don't overflow... people who added 2014-06-02 23:50:19 +00:00
dev xen/virtio: fix balloon drivers to not mark pages as WIRED 2014-06-25 09:51:08 +00:00
fs Use existing PHOLD() and PRELE() macros. 2014-06-24 18:25:43 +00:00
gdb
geom Add disklabel64 support to GEOM_PART class. 2014-06-11 10:42:34 +00:00
gnu
i386 Add FPU_KERN_KTHR flag to fpu_kern_enter(9), which avoids saving FPU 2014-06-23 07:37:54 +00:00
ia64 - Modify vm_page_unwire() and vm_page_enqueue() to directly accept 2014-06-16 18:15:27 +00:00
isa Remove vestiges of knowing the ISA bus, which we gave up on around 20 2014-03-19 21:03:04 +00:00
kern sysctl subsystem uses sxlocks so avoid to setup dynamic sysctl nodes 2014-06-24 15:16:55 +00:00
kgssapi
libkern Use strcasecmp() instead of strcmp() when checking user-supplied encoding 2014-06-09 19:27:47 +00:00
mips Remove /etc/gnats from here, too. 2014-06-20 11:47:49 +00:00
modules MFV r260708 2014-06-25 14:23:30 +00:00
net - Modify vm_page_unwire() and vm_page_enqueue() to directly accept 2014-06-16 18:15:27 +00:00
net80211 Use logical rather than bitwise OR in if() expression. 2014-04-26 23:22:49 +00:00
netgraph PF_BLUETOOTH protocols: skip initialization of non-virtualized globals 2014-06-10 18:21:37 +00:00
netinet Fix a bug which incorrectly allowed two listening SCTP sockets on 2014-06-20 20:17:39 +00:00
netinet6 Make nd6_gctimer tunable. 2014-06-23 16:27:29 +00:00
netipsec Use IPv4 statistics in ipsec4_process_packet() rather than the IPv6 2014-05-28 23:01:20 +00:00
netnatm
netpfil DNOLD_IS_ECN introduced by r266941 is not required. 2014-06-01 20:19:17 +00:00
netsmb Remove redundant unlock. 2014-04-17 12:22:08 +00:00
nfs Fix/improve fhe_stats sysctl output. 2014-06-14 12:26:12 +00:00
nfsclient
nfsserver The PR reported that the old NFS server did not set uio_td == NULL 2014-04-24 20:47:58 +00:00
nlm
ofed - Fix out of range shifting bug in bitops.h. 2014-06-12 13:33:01 +00:00
opencrypto
pc98 lindev(4): finish the partial commit in r265212 2014-05-02 07:14:22 +00:00
pci Fix various NIC drivers to properly cleanup static DMA resources. 2014-06-11 14:53:58 +00:00
powerpc Commit the rest of the changes that were intended to be part of r266826. 2014-05-29 01:42:22 +00:00
rpc Fix race in r267221. 2014-06-09 15:00:43 +00:00
security audit: plug FILEDESC_LOCK leak in audit_canon_path. 2014-03-21 01:30:33 +00:00
sparc64 Restore comments accidentally removed. 2014-06-06 04:08:55 +00:00
sys Permit changing cpu mask for cpu set 1 in presence of drivers 2014-06-22 11:32:23 +00:00
teken
tools Call cpp with -P to avoid printing line markings. 2014-06-10 06:24:01 +00:00
ufs In msdosfs_setattr(), add a check for result of the utimes(2) 2014-06-17 07:11:00 +00:00
vm Now that vm_map_insert() sets MAP_ENTRY_GROWS_{DOWN,UP} on the stack entries 2014-06-25 03:30:03 +00:00
x86 Fix compile warning: Remove duplicate external declaration. 2014-06-19 05:06:24 +00:00
xdr
xen xen: add missing files 2014-06-16 08:54:04 +00:00
Makefile Reorganize this Makefile so that all the bsd.*.mk bits are in one 2014-05-29 16:03:08 +00:00