linux/drivers/net/ethernet/intel
Stefan Assmann 4ce20abc64 i40e: fix MSI-X vector redistribution if hw limit is reached
The driver allocates 1 vector per CPU thread and the current hardware
limit for vectors is 129 per PF. On systems with 128 or more threads
this currently means all vectors are used by the PF leaving no room for
additional features like VMDq, iWARP, etc...
The code that should redistribute the vectors in this case is broken and
never triggers. Fixed the code so that it actually triggers if the
hardware limit is reached and adjust the number of queue pairs
accordingly.
Also the number of initially requested iWARP vectors was not properly
saved when the vector limit was reached, and therefore always zero.

Comparison with debug statement.
Before:
i40e 0000:2d:00.0: VMDq disabled, not enough MSI-X vectors
i40e 0000:2d:00.0: IWARP disabled, not enough MSI-X vectors
i40e 00.0 MSI-X vector distribution: PF 128, VMDq 0, FDSB 0, iWARP 0
After:
i40e 0000:2d:00.0: MSI-X vector limit reached, attempting to redistribute vectors
i40e 00.0 MSI-X vector distribution: PF 78, VMDq 8, FDSB 0, iWARP 42

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2016-10-03 19:09:09 -07:00
..
e1000 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-04-09 17:41:41 -04:00
e1000e ptp_clock: future-proofing drivers against PTP subsystem becoming optional 2016-09-22 02:18:33 -04:00
fm10k net: Update API for VF vlan protocol 802.1ad support 2016-09-24 08:01:26 -04:00
i40e i40e: fix MSI-X vector redistribution if hw limit is reached 2016-10-03 19:09:09 -07:00
i40evf i40evf: support queue-specific settings for interrupt moderation 2016-09-24 22:50:23 -07:00
igb igb: restore PPS signal on igb_ptp_reset 2016-09-27 19:00:52 -07:00
igbvf igbvf: bump version to igbvf-2.4.0 2016-09-27 19:00:52 -07:00
ixgb drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
ixgbe Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue 2016-09-24 08:21:49 -04:00
ixgbevf ixgbevf: add spinlocks for MTU change calls 2016-09-23 00:16:34 -07:00
e100.c e100: Release skb when DMA mapping is failed in e100_xmit_prepare 2015-08-18 14:06:05 -07:00
Kconfig ixgbe: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port 2016-06-17 20:23:30 -07:00
Makefile fm10k: Add skeletal frame for Intel(R) FM10000 Ethernet Switch Host Interface Driver 2014-09-23 03:59:13 -07:00