linux_dsm_epyc7002/drivers/net/ethernet/mellanox/mlx4
Ido Shamay bb2146bc88 net/mlx4: Fix limiting number of IRQ's instead of RSS queues
This fix a performance bug introduced by commit 90b1ebe "mlx4: set
maximal number of default RSS queues", which limits the numbers of IRQs
opened by core module.
The limit should be on the number of queues in the indirection table -
rx_rings, and not on the number of IRQ's. Also, limiting on mlx4_core
initialization instead of in mlx4_en, prevented using "ethtool -L" to
utilize all the CPU's, when performance mode is prefered, since limiting
this number to 8 reduces overall packet rate by 15%-50% in multiple TCP
streams applications.

For example, after running ethtool -L <ethx> rx 16

          Packet rate
Before the fix  897799
After the fix   1142070

Results were obtained using netperf:

S=200 ; ( for i in $(seq 1 $S) ; do ( \
  netperf -H 11.7.13.55 -t TCP_RR -l 30 &) ; \
  wait ; done | grep "1        1" | awk '{SUM+=$6} END {print SUM}' )

CC: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Ido Shamay <idos@mellanox.com>
Signed-off-by: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-02-24 18:38:14 -05:00
..
alloc.c mlx4_core: Roll back round robin bitmap allocation commit for CQs, SRQs, and MPTs 2013-12-09 21:12:13 -05:00
catas.c mlx4: Add support for EEH error recovery 2012-07-25 15:24:13 -07:00
cmd.c mlx4_core: Add support for steerable IB UD QPs 2014-01-14 14:06:50 -08:00
cq.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
en_clock.c mlx4_en: Only cycle port if HW timestamp config changes 2014-01-02 03:30:36 -05:00
en_cq.c net/mlx4_en: Add NAPI support for transmit side 2013-12-19 19:04:44 -05:00
en_dcb_nl.c net/mlx4_en: Disable global flow control when PFC enabled 2013-08-21 12:19:26 -07:00
en_ethtool.c mlx4_en: Add PTP hardware clock 2014-01-02 03:30:36 -05:00
en_main.c net/mlx4: Set number of RX rings in a utility function 2014-02-24 18:38:01 -05:00
en_netdev.c net/mlx4_en: fix error return code in mlx4_en_get_qp() 2014-01-07 15:42:52 -05:00
en_port.c net/mlx4_en: Datapath resources allocated dynamically 2013-11-07 19:22:48 -05:00
en_port.h net/mlx4_core: set port QoS attributes 2012-04-05 05:08:03 -04:00
en_resources.c net/mlx4_en: Add netdev support for TCP/IP offloads of vxlan tunneling 2013-12-31 14:31:43 -05:00
en_rx.c net/mlx4: Fix limiting number of IRQ's instead of RSS queues 2014-02-24 18:38:14 -05:00
en_selftest.c net/mlx4_en: Remove selftest TX queues empty condition 2013-12-01 20:36:07 -05:00
en_tx.c netdevice: add queue selection fallback handler for ndo_select_queue 2014-02-17 00:36:34 -05:00
eq.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
fw.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-01-25 11:17:34 -08:00
fw.h net/mlx4_core: Expose physical port id as PF/VF capability 2013-12-19 19:04:43 -05:00
icm.c net/mlx4_core: ICM pages are allocated on device NUMA node 2013-11-07 19:22:48 -05:00
icm.h mlx4_core: Fix integer overflows so 8TBs of memory registration works 2012-09-13 17:52:02 -07:00
intf.c mlx4: Use port management change event instead of smp_snoop 2012-07-10 09:47:10 -07:00
Kconfig mlx4_en: Select PTP_1588_CLOCK 2014-01-07 16:23:45 -05:00
main.c net/mlx4: Fix limiting number of IRQ's instead of RSS queues 2014-02-24 18:38:14 -05:00
Makefile net/mlx4_en: Add HW timestamping (TS) support 2013-04-24 16:30:14 -04:00
mcg.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-01-25 11:17:34 -08:00
mlx4_en.h net/mlx4: Set number of RX rings in a utility function 2014-02-24 18:38:01 -05:00
mlx4.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-01-25 11:17:34 -08:00
mr.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
pd.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
port.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-01-25 11:17:34 -08:00
profile.c mlx4_core: Fix integer overflow issues around MTT table 2012-08-15 21:05:26 -07:00
qp.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
reset.c mlx4: Use PCI Express Capability accessors 2012-08-23 10:11:13 -06:00
resource_tracker.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-01-25 11:17:34 -08:00
sense.c Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
srq.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00