Page MenuHomeFreeBSD

if_ixv: disable RSS configuration on 82599 and X540 VFs

Authored by avg on Sep 18 2019, 12:36 PM.



It is reported that those VFs share their RSS configuration with PF and,
thus, they cannot be configured independently.


  • 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

Sponsored by: Panzura

Diff Detail

rS FreeBSD src repository - subversion
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

549 ↗(On Diff #62267)

By the way, should this be M_HASHTYPE_OPAQUE or M_HASHTYPE_OPAQUE_HASH ?

549 ↗(On Diff #62267)

I think that sephe once did M_HASHTYPE_OPAQUE ==> M_HASHTYPE_OPAQUE_HASH (rS301538), but that got reverted during the convertion to iflib in rS327031.

So, no hard feelings if I commit this?
I will try to handle any fallout if it happens.

jeb added inline comments.
1462 ↗(On Diff #62267)

Why wouldn't the guard be feat_en & ICE_FEATURE_RSS? added inline comments.
1462 ↗(On Diff #62267)

Doex ixgbe have feature flags for this? (seeing as this isn't the ice driver).

1462 ↗(On Diff #62267)

Sorry, not ICE, but rather IXGBE_FEATURE_RSS.

avg marked 3 inline comments as done.Oct 22 2019, 10:18 AM
avg added inline comments.
1462 ↗(On Diff #62267)

IXGBE_FEATURE_RSS is defined to zero if RSS is not enabled in the kernel configuration, see ixgbe_features.h.
So, in that case ixv_initialize_rss_mapping() would not be called at all if I used feat_cap & IXGBE_FEATURE_RSS check.
But I think that we still want to call ixv_initialize_rss_mapping() to setup the "hardware RSS" -- the interrupt / packet distribution -- even if the "software RSS" is not enabled in the network stack.

This revision was not accepted when it landed; it landed in state Needs Review.Nov 5 2019, 6:34 AM
This revision was automatically updated to reflect the committed changes.
avg marked an inline comment as done.