bianbu-linux-6.6/drivers/net/ethernet/intel/i40evf
Alan Brady c97fc9b6a7 i40evf: fix ring to vector mapping
The current implementation for mapping queues to vectors is broken
because it attempts to map each Tx and Rx ring to its own vector,
however we use combined queues so we should actually be mapping the
Tx/Rx rings together on one vector.

Also in the current implementation, in the case where we have more
queues than vectors, we attempt to group the queues together into
'chunks' and map each 'chunk' of queues to a vector.  Chunking them
together would be more ideal if, and only if, we only had RSS because of
the way the hashing algorithm works but in the case of a future patch
that enables VF ADq, round robin assignment is better and still works
with RSS.

This patch resolves both those issues and simplifies the code needed to
accomplish this.  Instead of treating the case where we have more queues
than vectors as special, if we notice our vector index is greater than
vectors, reset the vector index to zero and continue mapping.  This
should ensure that in both cases, whether we have enough vectors for
each queue or not, the queues get appropriately mapped.

Signed-off-by: Alan Brady <alan.brady@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-09-29 12:51:01 -07:00
..
i40e_adminq.c i40e: reduce wait time for adminq command completion 2017-04-19 17:38:25 -07:00
i40e_adminq.h i40e: reduce wait time for adminq command completion 2017-04-19 17:38:25 -07:00
i40e_adminq_cmd.h i40e/i40evf: update WOL and I40E_AQC_ADDR_VALID_MASK flags 2017-06-20 18:17:10 -07:00
i40e_alloc.h i40evf: Fix the headers and update copyright year. 2014-05-21 01:54:43 -07:00
i40e_common.c i40e: prevent snprintf format specifier truncation 2017-08-27 15:43:41 -07:00
i40e_devids.h i40evf: Add support for Adaptive Virtual Function 2017-06-01 14:30:02 -07:00
i40e_hmc.h i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_lan_hmc.h i40e/i40evf: Big endian fixes for handling HMC 2014-06-26 04:44:57 -07:00
i40e_osdep.h i40evf: remove unnecessary __packed 2017-07-26 03:25:21 -07:00
i40e_prototype.h virtchnl: rename i40e to generic virtchnl 2017-06-01 14:08:53 -07:00
i40e_register.h i40evf: Remove PF specific register definitions from the VF 2015-08-26 15:05:17 -07:00
i40e_status.h i40evf: Fix the headers and update copyright year. 2014-05-21 01:54:43 -07:00
i40e_trace.h i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00
i40e_txrx.c i40e/i40evf: rename bytes_per_int to bytes_per_usec 2017-09-29 12:50:58 -07:00
i40e_txrx.h i40e/i40evf: avoid dynamic ITR updates when polling or low packet rate 2017-08-27 16:15:24 -07:00
i40e_type.h i40e: Store the requested FEC information 2017-08-27 15:43:34 -07:00
i40evf.h i40e/i40evf: support for VF VLAN tag stripping control 2017-08-27 15:47:43 -07:00
i40evf_client.c virtchnl: rename i40e to generic virtchnl 2017-06-01 14:08:53 -07:00
i40evf_client.h i40evf: add client interface 2017-03-15 01:31:38 -07:00
i40evf_ethtool.c i40e/i40evf: use cmpxchg64 when updating private flags in ethtool 2017-08-25 14:46:34 -07:00
i40evf_main.c i40evf: fix ring to vector mapping 2017-09-29 12:51:01 -07:00
i40evf_virtchnl.c i40evf: lower message level 2017-09-29 12:51:00 -07:00
Makefile i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00