1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-10-19 02:29:40 +00:00
freebsd/sys
Adrian Chadd 9e2eaa64d7 Disable flow-director support until it's been debugged and verified.
The flowdirector feature shares on-chip memory with other things
such as the RX buffers.  In theory it should be configured in a way
that doesn't interfere with the rest of operation.  In practice,
the RX buffer calculation didn't take the flow-director allocation
into account and there'd be overlap.  This lead to various garbage
frames being received containing what looks like internal NIC state.

What _I_ saw was traffic ending up in the wrong RX queues.
If I was doing a UDP traffic test with only one NIC ring receiving
traffic, everything is fine.  If I fired up a second UDP stream
which came in on another ring, there'd be a few percent of traffic
from both rings ending up in the wrong ring.  Ie, the RSS hash would
indicate it was supposed to come in ring X, but it'd come in ring Y.

However, when the allocation was fixed up, the developers at Verisign
still saw traffic stalls.

The flowdirector feature ends up fiddling with the NIC to do various
attempts at load balancing connections by populating flow table rules
based on sampled traffic.  It's likely that all of that has to be
carefully reviewed and made less "magic".

So for now the flow director feature is disabled (which fixes both
what I was seeing and what they were seeing) until it's all much
more debugged and verified.

Tested:

* (me) 82599EB 2x10G NIC, RSS UDP testing.
* (verisign) not sure on the NIC (but likely 82599), 100k-200k/sec TCP
  transaction tests.

Submitted by:	Marc De La Gueronniere <mdelagueronniere@verisign.com>
MFC after:	1 week
Sponsored by:	Verisign, Inc.
2014-09-15 21:09:19 +00:00
..
amd64 Add a sysctl to export the EFI memory map along with a handler in the 2014-09-13 03:10:02 +00:00
arm The private peripheral interrupts start at offset 16, not 0. Also, use 2014-09-15 15:36:00 +00:00
boot add gptzfsboot.8, zfsboot.8 and zfsloader.8 manual pages 2014-09-15 06:21:28 +00:00
bsm
cam Add quirks to disable READ CAPACITY (16) for PNY USB 3.0 Flash Drives. 2014-09-15 19:48:27 +00:00
cddl Added missing ZFS sysctls 2014-09-14 12:23:00 +00:00
compat Add missing proctree locking to fill_kinfo_proc consumers. 2014-08-30 03:10:55 +00:00
conf Disable flow-director support until it's been debugged and verified. 2014-09-15 21:09:19 +00:00
contrib Add iwn-100 firmware. 2014-08-28 00:05:02 +00:00
crypto
ddb ins is only set and unused, but only when we're not doing software 2014-08-14 16:01:51 +00:00
dev The error bits are not valid with EOP=0; so intermediary fragments should 2014-09-15 20:54:12 +00:00
fs Provide the unique implementation for the VOP_GETPAGES() method used 2014-09-15 12:28:29 +00:00
gdb Add support for gdb's memory searching capabilities to our in-kernel gdb 2014-09-05 16:40:47 +00:00
geom Add device name used in geom_map verbose output. This helps when using 2014-09-11 22:39:27 +00:00
gnu Merge forgotten .h files from vendor branch. 2014-09-05 02:21:45 +00:00
i386 MFamd64: Use initializecpu() to set various model-specific registers on 2014-09-10 21:37:47 +00:00
isa
kern Add comments describing r271604 change. 2014-09-15 11:17:36 +00:00
kgssapi
libkern Use __DECONST to avoid compiler warnings (and thus build failures) 2014-09-08 08:12:09 +00:00
mips Fix RTC clock writes on many Octeon boards. 2014-09-14 00:02:40 +00:00
modules Disable flow-director support until it's been debugged and verified. 2014-09-15 21:09:19 +00:00
net Revert r271504. A new patch to solve this issue will be made. 2014-09-13 20:52:01 +00:00
net80211 After much toying around with this AMRR initial rate stuff, 2014-08-20 09:10:03 +00:00
netgraph
netinet Chunk IDs are 8 bit entities, not 16 bit. 2014-09-15 19:38:34 +00:00
netinet6 Revisions 264905 and 266860 added a "int fib" argument to ifa_ifwithnet and 2014-09-11 20:21:03 +00:00
netipsec Change pr_output's prototype to avoid the need for explicit casts. 2014-08-15 02:43:02 +00:00
netnatm
netpfil - Provide a sleepable lock to protect against ioctl() vs ioctl() races. 2014-09-12 08:39:15 +00:00
netsmb
nfs
nfsclient Avoid an exclusive acquisition of the object lock on the expected execution 2014-09-14 18:07:55 +00:00
nfsserver
nlm
ofed Revert r271504. A new patch to solve this issue will be made. 2014-09-13 20:52:01 +00:00
opencrypto Fix various issues with invalid file operations: 2014-09-12 21:29:10 +00:00
pc98 MFamd64: Use initializecpu() to set various model-specific registers on 2014-09-10 21:37:47 +00:00
pci
powerpc Rename OF_xref_phandle() to OF_node_from_xref() and add a new function 2014-09-01 18:51:01 +00:00
rpc
security Replace dev_clone with cdevpriv(9) KPI in audit_pipe code. 2014-08-20 16:04:30 +00:00
sparc64 Create a separate structure for per-CPU state saved across suspend and 2014-09-06 15:23:28 +00:00
sys Fix various issues with invalid file operations: 2014-09-12 21:29:10 +00:00
teken
tools Allow the make_dtb script to work outside of a "make buildkernel" context 2014-08-30 22:39:15 +00:00
ufs Provide the unique implementation for the VOP_GETPAGES() method used 2014-09-15 12:28:29 +00:00
vm Add stricter checking of some mmap() arguments: 2014-09-15 17:20:13 +00:00
x86 xen: don't set suspend/resume methods for the PIRQ PIC 2014-09-15 15:15:52 +00:00
xdr
xen
Makefile