Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Sep 2014 21:09:19 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r271649 - in head/sys: conf modules/ixgbe
Message-ID:  <201409152109.s8FL9JMp009510@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Mon Sep 15 21:09:19 2014
New Revision: 271649
URL: http://svnweb.freebsd.org/changeset/base/271649

Log:
  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.

Modified:
  head/sys/conf/files
  head/sys/modules/ixgbe/Makefile

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files	Mon Sep 15 20:54:12 2014	(r271648)
+++ head/sys/conf/files	Mon Sep 15 21:09:19 2014	(r271649)
@@ -1779,7 +1779,7 @@ dev/ixgb/if_ixgb.c		optional ixgb
 dev/ixgb/ixgb_ee.c		optional ixgb
 dev/ixgb/ixgb_hw.c		optional ixgb
 dev/ixgbe/ixgbe.c		optional ixgbe inet \
-	compile-with "${NORMAL_C} -I$S/dev/ixgbe -DSMP -DIXGBE_FDIR"
+	compile-with "${NORMAL_C} -I$S/dev/ixgbe -DSMP"
 dev/ixgbe/ixv.c			optional ixgbe inet \
 	compile-with "${NORMAL_C} -I$S/dev/ixgbe"
 dev/ixgbe/ixgbe_phy.c		optional ixgbe inet \

Modified: head/sys/modules/ixgbe/Makefile
==============================================================================
--- head/sys/modules/ixgbe/Makefile	Mon Sep 15 20:54:12 2014	(r271648)
+++ head/sys/modules/ixgbe/Makefile	Mon Sep 15 21:09:19 2014	(r271649)
@@ -10,6 +10,6 @@ SRCS    += ixgbe.c ixv.c
 SRCS    += ixgbe_common.c ixgbe_api.c ixgbe_phy.c ixgbe_mbx.c ixgbe_vf.c
 SRCS    += ixgbe_dcb.c ixgbe_dcb_82598.c ixgbe_dcb_82599.c
 SRCS    += ixgbe_82599.c ixgbe_82598.c ixgbe_x540.c
-CFLAGS+= -I${.CURDIR}/../../dev/ixgbe -DSMP -DIXGBE_FDIR
+CFLAGS+= -I${.CURDIR}/../../dev/ixgbe -DSMP
 
 .include <bsd.kmod.mk>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201409152109.s8FL9JMp009510>