svn commit: r268915 - head/sys/dev/ixgbe
Adrian Chadd
adrian at FreeBSD.org
Sun Jul 20 07:43:41 UTC 2014
Author: adrian
Date: Sun Jul 20 07:43:41 2014
New Revision: 268915
URL: http://svnweb.freebsd.org/changeset/base/268915
Log:
Disable the ixgbe(4) UDP 4-tuple hashing for the time being.
A mix of fragmented and non-fragmented UDP in a single stream will end up
being hashed differently, resulting in out-of-order behaviour in the receive
path.
This was done in the linux e1000 driver in 2011.
Discussed with: jfv
Modified:
head/sys/dev/ixgbe/ixgbe.c
Modified: head/sys/dev/ixgbe/ixgbe.c
==============================================================================
--- head/sys/dev/ixgbe/ixgbe.c Sun Jul 20 07:39:54 2014 (r268914)
+++ head/sys/dev/ixgbe/ixgbe.c Sun Jul 20 07:43:41 2014 (r268915)
@@ -4247,16 +4247,26 @@ ixgbe_initialise_rss_mapping(struct adap
IXGBE_WRITE_REG(hw, IXGBE_RSSRK(i), rss_key[i]);
/* Perform hash on these packet types */
+ /*
+ * Disable UDP - IP fragments aren't currently being handled
+ * and so we end up with a mix of 2-tuple and 4-tuple
+ * traffic.
+ */
mrqc = IXGBE_MRQC_RSSEN
| IXGBE_MRQC_RSS_FIELD_IPV4
| IXGBE_MRQC_RSS_FIELD_IPV4_TCP
+#if 0
| IXGBE_MRQC_RSS_FIELD_IPV4_UDP
+#endif
| IXGBE_MRQC_RSS_FIELD_IPV6_EX_TCP
| IXGBE_MRQC_RSS_FIELD_IPV6_EX
| IXGBE_MRQC_RSS_FIELD_IPV6
| IXGBE_MRQC_RSS_FIELD_IPV6_TCP
+#if 0
| IXGBE_MRQC_RSS_FIELD_IPV6_UDP
- | IXGBE_MRQC_RSS_FIELD_IPV6_EX_UDP;
+ | IXGBE_MRQC_RSS_FIELD_IPV6_EX_UDP
+#endif
+ ;
IXGBE_WRITE_REG(hw, IXGBE_MRQC, mrqc);
}
More information about the svn-src-all
mailing list