Commit 634ab72c authored by Ben Hutchings's avatar Ben Hutchings

sfc: Disable RSS when using SR-IOV and only 1 RX queue on the PF

On Siena, VFs share RSS configuration with the PF.  We attempted to
support configurations where the PF only uses 1 RX queue and VFs use
multiple RX queues, by (1) setting up RSS for the number of RX queues
per VF (2) disabling RSS in the PF's RX default filters.

Unfortunately commit cd2d5b52 ('sfc: Add SR-IOV back-end support
for SFC9000 family') only included (1).  This is (2).
Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
parent d9ccfdd4
...@@ -414,8 +414,12 @@ static void efx_filter_reset_rx_def(struct efx_nic *efx, unsigned filter_idx) ...@@ -414,8 +414,12 @@ static void efx_filter_reset_rx_def(struct efx_nic *efx, unsigned filter_idx)
struct efx_filter_table *table = &state->table[EFX_FILTER_TABLE_RX_DEF]; struct efx_filter_table *table = &state->table[EFX_FILTER_TABLE_RX_DEF];
struct efx_filter_spec *spec = &table->spec[filter_idx]; struct efx_filter_spec *spec = &table->spec[filter_idx];
/* If there's only one channel then disable RSS for non VF
* traffic, thereby allowing VFs to use RSS when the PF can't.
*/
efx_filter_init_rx(spec, EFX_FILTER_PRI_MANUAL, efx_filter_init_rx(spec, EFX_FILTER_PRI_MANUAL,
EFX_FILTER_FLAG_RX_RSS, 0); efx->n_rx_channels > 1 ? EFX_FILTER_FLAG_RX_RSS : 0,
0);
spec->type = EFX_FILTER_UC_DEF + filter_idx; spec->type = EFX_FILTER_UC_DEF + filter_idx;
table->used_bitmap[0] |= 1 << filter_idx; table->used_bitmap[0] |= 1 << filter_idx;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment