svn commit: r355321 - stable/12/sys/dev/ixgbe
Andriy Gapon
avg at FreeBSD.org
Tue Dec 3 07:22:17 UTC 2019
Author: avg
Date: Tue Dec 3 07:22:16 2019
New Revision: 355321
URL: https://svnweb.freebsd.org/changeset/base/355321
Log:
MFC r354349: if_ixv: disable RSS configuration on 82599 and X540 VFs
It is reported that those VFs share their RSS configuration with PF and,
thus, they cannot be configured independently.
Also:
- add missing opt_rss.h to if_ixv.c, otherwise RSS kernel option could
not be seen
- do not enable IXGBE_FEATURE_RSS on the older VFs
- set flowid / hash type to M_HASHTYPE_NONE or M_HASHTYPE_OPAQUE_HASH
(based on what the hardware reports) if IXGBE_FEATURE_RSS is not set
Modified:
stable/12/sys/dev/ixgbe/if_ixv.c
stable/12/sys/dev/ixgbe/ix_txrx.c
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/dev/ixgbe/if_ixv.c
==============================================================================
--- stable/12/sys/dev/ixgbe/if_ixv.c Tue Dec 3 07:20:47 2019 (r355320)
+++ stable/12/sys/dev/ixgbe/if_ixv.c Tue Dec 3 07:22:16 2019 (r355321)
@@ -35,6 +35,7 @@
#include "opt_inet.h"
#include "opt_inet6.h"
+#include "opt_rss.h"
#include "ixgbe.h"
#include "ifdi_if.h"
@@ -1457,7 +1458,12 @@ ixv_initialize_receive_units(if_ctx_t ctx)
scctx->isc_nrxd[0] - 1);
}
- ixv_initialize_rss_mapping(adapter);
+ /*
+ * Do not touch RSS and RETA settings for older hardware
+ * as those are shared among PF and all VF.
+ */
+ if (adapter->hw.mac.type >= ixgbe_mac_X550_vf)
+ ixv_initialize_rss_mapping(adapter);
} /* ixv_initialize_receive_units */
/************************************************************************
@@ -1892,7 +1898,6 @@ ixv_init_device_features(struct adapter *adapter)
{
adapter->feat_cap = IXGBE_FEATURE_NETMAP
| IXGBE_FEATURE_VF
- | IXGBE_FEATURE_RSS
| IXGBE_FEATURE_LEGACY_TX;
/* A tad short on feature flags for VFs, atm. */
@@ -1905,6 +1910,7 @@ ixv_init_device_features(struct adapter *adapter)
case ixgbe_mac_X550EM_x_vf:
case ixgbe_mac_X550EM_a_vf:
adapter->feat_cap |= IXGBE_FEATURE_NEEDS_CTXD;
+ adapter->feat_cap |= IXGBE_FEATURE_RSS;
break;
default:
break;
Modified: stable/12/sys/dev/ixgbe/ix_txrx.c
==============================================================================
--- stable/12/sys/dev/ixgbe/ix_txrx.c Tue Dec 3 07:20:47 2019 (r355320)
+++ stable/12/sys/dev/ixgbe/ix_txrx.c Tue Dec 3 07:22:16 2019 (r355321)
@@ -464,6 +464,12 @@ ixgbe_isc_rxd_pkt_get(void *arg, if_rxd_info_t ri)
ri->iri_flowid = le32toh(rxd->wb.lower.hi_dword.rss);
ri->iri_rsstype = ixgbe_determine_rsstype(pkt_info);
+ if ((adapter->feat_en & IXGBE_FEATURE_RSS) == 0) {
+ if (ri->iri_rsstype == M_HASHTYPE_OPAQUE)
+ ri->iri_rsstype = M_HASHTYPE_NONE;
+ else
+ ri->iri_rsstype = M_HASHTYPE_OPAQUE_HASH;
+ }
ri->iri_vtag = vtag;
ri->iri_nfrags = i;
if (vtag)
More information about the svn-src-stable-12
mailing list