freebsd-nq/sys
Adrian Chadd ac75ee9fa3 Add in support to optionally pin the swi threads.
Under enough load, the swi's can actually be preempted and migrated
to other currently free cores.  When doing RSS experiments, this lead
to the per-CPU TCP timers not lining up any more with the RX CPU said
flows were ending up on, leading to increased lock contention.

Since there was a little pushback on flipping them on by default,
I've left the default at "don't pin."

The other less obvious problem here is that the default swi
is also the same as the destination swi for CPU #0.  So if one
pins the swi on CPU #0, there's no default floating swi.

A nice future project would be to create a separate swi for
the "default" floating swi, as well as per-CPU swis that are
(optionally) pinned.

Tested:

* parallel TCP tests (2 x 1g unfortunately for now);
  CPU: Intel(R) Xeon(R) CPU E5-2650

Note:

This is based on some initial investigation into RSS/TCP stack lock
contention on FreeBSD-HEAD whilst at Netflix in January 2014.
2014-05-10 00:53:36 +00:00
..
amd64 Virtual machine halt detection is turned on by default. Allow it to be 2014-05-05 16:19:24 +00:00
arm Call idcache_inv_all from the AP core entry code before turning on the MMU. 2014-05-09 19:14:34 +00:00
boot Adjust the register layout to allow for 64bit registers in the 2014-05-09 12:59:38 +00:00
bsm IFp4 @1192291: 2014-04-07 20:44:00 +00:00
cam Provide better descriptions for 'struct ctl_scsiio' fields; based mostly 2014-05-04 15:35:04 +00:00
cddl Import George Wilson's change for Illumos #4730: 2014-05-06 19:03:04 +00:00
compat In freebsd32_sendmsg(), replace the call to sockargs() followed by a 2014-04-05 18:56:01 +00:00
conf Fix typo in FORMAT_EXTENSIONS which breaks universe. 2014-05-10 00:42:43 +00:00
contrib Add Atheros AR1111 support to the HAL. 2014-05-05 07:58:05 +00:00
crypto NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
ddb ddb: Minor style cleanups. 2014-03-31 16:37:41 +00:00
dev Fix a regression issue: 2014-05-09 16:40:41 +00:00
fs After r254627, the deupdate() started writing the directory entries to 2014-05-03 16:11:55 +00:00
gdb
geom It is safe to allow shrinking, when aligned size is bigger than current. 2014-05-07 11:18:27 +00:00
gnu Symbolic bindings for the dts files... 2014-02-28 16:51:33 +00:00
i386 Disable ACPI and P4TCC throttling by default, following discussion on 2014-05-04 16:38:21 +00:00
ia64 Bring in the mpr(4) driver for LSI's MPT3 12Gb SAS controllers. 2014-05-02 20:25:09 +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 Add in support to optionally pin the swi threads. 2014-05-10 00:53:36 +00:00
kgssapi
libkern
mips Add support for reading RouterBoard's memory which is passed by the loader 2014-05-09 14:02:18 +00:00
modules Invert platform check. 2014-05-09 14:35:07 +00:00
net Rename rt_msg1() to more handy rtsock_msg_mbuf(). 2014-05-08 13:54:57 +00:00
net80211 Use logical rather than bitwise OR in if() expression. 2014-04-26 23:22:49 +00:00
netgraph Remove AppleTalk support. 2014-03-14 06:29:43 +00:00
netinet Fix a logic bug which prevented the sending of UDP packet with 0 checksum. 2014-05-09 14:15:48 +00:00
netinet6 Pass radix head ptr along with rte to rtexpunge(). 2014-05-03 16:28:54 +00:00
netipsec Remove _IP_VHL* macros and related ifdefs. 2014-04-16 05:31:54 +00:00
netnatm
netpfil Define startup order the same way as it is in dummynet. 2014-04-26 08:05:16 +00:00
netsmb Remove redundant unlock. 2014-04-17 12:22:08 +00:00
nfs - Remove rt_metrics_lite and simply put its members into rtentry. 2014-03-05 01:17:47 +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 Correct a typo in nlm_find_host_by_addr(): the intention of the 2014-03-11 00:25:55 +00:00
ofed Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
opencrypto allow the kern.cryptodevallowsoft sysctl to enable symetric/hashes too... 2014-03-11 01:45:46 +00:00
pc98 lindev(4): finish the partial commit in r265212 2014-05-02 07:14:22 +00:00
pci Increase the number of TX DMA segments from 32 to 35. It turned 2014-03-31 01:54:59 +00:00
powerpc Retire smp_active. It was racey and caused demonstrated problems with 2014-04-26 20:27:54 +00:00
rpc Properly free resources in case of error. 2014-05-02 20:45:55 +00:00
security audit: plug FILEDESC_LOCK leak in audit_canon_path. 2014-03-21 01:30:33 +00:00
sparc64 Bring in the mpr(4) driver for LSI's MPT3 12Gb SAS controllers. 2014-05-02 20:25:09 +00:00
sys Spell raccdt in a more conventional way in a comment. 2014-05-06 10:53:51 +00:00
teken Fix typo. 2014-02-06 13:28:06 +00:00
tools Fix logic error. <blush> 2014-04-30 20:52:38 +00:00
ufs Due to reasons unknown at this time, the system can be forced to write 2014-05-06 20:40:16 +00:00
vm msync(2) must return ENOMEM and not EINVAL when the address is outside the 2014-05-07 08:38:02 +00:00
x86 Make this compile with gcc. 2014-04-05 22:43:18 +00:00
xdr
xen Make this compile with gcc. 2014-04-05 22:43:18 +00:00
Makefile Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00