linux_dsm_epyc7002/drivers/net/ethernet/mellanox/mlx4
Ido Shamay 488a9b48e3 net/mlx4_en: Wake TX queues only when there's enough room
Indication of a single completed packet, marked by txbbs_skipped
being bigger then zero, in not enough in order to wake up a
stopped TX queue. The completed packet may contain a single TXBB,
while next packet to be sent (after the wake up) may have multiple
TXBBs (LSO/TSO packets for example), causing overflow in queue followed
by WQE corruption and TX queue timeout.
Instead, wake the stopped queue only when there's enough room for the
worst case (maximum sized WQE) packet that we should need to handle after
the queue is opened again.

Also created an helper routine - mlx4_en_is_tx_ring_full, which checks
if the current TX ring is full or not. It provides better code readability
and removes code duplication.

Signed-off-by: Ido Shamay <idos@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-06-25 02:06:27 -07:00
..
alloc.c net: Mellanox: Delete unnecessary checks before the function call "vunmap" 2015-02-09 14:10:05 -08:00
catas.c net/mlx4_core: Enable device recovery flow with SRIOV 2015-01-25 14:43:14 -08:00
cmd.c net/mlx4_en: Support ndo_get_vf_stats 2015-06-15 17:23:03 -07:00
cq.c net/mlx4_core: Make sure there are no pending async events when freeing CQ 2015-05-30 23:35:34 -07:00
en_clock.c ptp: mlx4: use helpers for converting ns to timespec. 2015-03-31 17:19:19 -04:00
en_cq.c net/mlx4_core: Move affinity hints to mlx4_core ownership 2015-05-30 23:35:34 -07:00
en_dcb_nl.c net/mlx4: New file for QoS related firmware commands 2015-04-02 16:25:02 -04:00
en_ethtool.c net/mlx4_en: Show PF own statistics via ethtool 2015-06-15 17:23:02 -07:00
en_main.c net/mlx4_en: Change loopback only upon feature change 2015-04-02 16:24:51 -04:00
en_netdev.c net/mlx4_en: Release TX QP when destroying TX ring 2015-06-25 02:06:26 -07:00
en_port.c net/mlx4_en: Use HW counters for rx/tx bytes/packets in PF device 2015-06-24 00:42:33 -07:00
en_port.h net/mlx4_en: Use PTYS register to query ethtool settings 2014-10-28 17:18:00 -04:00
en_resources.c net/mlx4_core: Allocate default counter per port 2015-06-15 17:23:02 -07:00
en_rx.c net/mlx4: Add EQ pool 2015-05-30 23:35:34 -07:00
en_selftest.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-03-03 21:16:48 -05:00
en_tx.c net/mlx4_en: Wake TX queues only when there's enough room 2015-06-25 02:06:27 -07:00
eq.c net/mlx4_core: Fix build failure introduced by the EQ pool changes 2015-06-03 19:34:51 -07:00
fw_qos.c net/mlx4: Add mlx4_SET_VPORT_QOS implementation 2015-04-02 16:25:02 -04:00
fw_qos.h net/mlx4: Added qos_vport QP configuration in VST mode 2015-04-02 16:25:03 -04:00
fw.c net/mlx4_core: Fix unaligned accesses 2015-04-30 16:26:30 -04:00
fw.h net/mlx4: Add RSS support for fragmented IP datagrams 2015-04-02 16:24:50 -04:00
icm.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
icm.h mlx4_core: Fix GFP flags parameters to be gfp_t 2014-06-04 10:19:13 -07:00
intf.c net/mlx4_core: Port aggregation upper layer interface 2015-02-04 16:14:24 -08:00
Kconfig net/mlx4: Set proper build dependancy with vxlan 2014-04-01 16:25:51 -04:00
main.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2015-06-24 16:49:49 -07:00
Makefile net/mlx4: New file for QoS related firmware commands 2015-04-02 16:25:02 -04:00
mcg.c net/mlx4_core: Reset flow activation upon SRIOV fatal command cases 2015-01-25 14:43:15 -08:00
mlx4_en.h net/mlx4_en: Wake TX queues only when there's enough room 2015-06-25 02:06:27 -07:00
mlx4_stats.h net/mlx4_en: Fix off-by-four in ethtool 2015-06-24 00:42:32 -07:00
mlx4.h net/mlx4_en: Support ndo_get_vf_stats 2015-06-15 17:23:03 -07:00
mr.c net/mlx4_core: Fix mpt_entry initialization in mlx4_mr_rereg_mem_write() 2015-02-04 16:17:45 -08:00
pd.c net/mlx4_core: Remove duplicate code line from procedure mlx4_bf_alloc 2015-01-27 17:12:57 -08:00
port.c net/mlx4_en: Add RX-ALL support 2015-04-02 16:25:04 -04:00
profile.c net/mlx4_core: use swap() in mlx4_make_profile() 2015-06-11 15:19:41 -07:00
qp.c net/mlx4: use swap() in mlx4_init_qp_table() 2015-06-11 15:19:41 -07:00
reset.c net/mlx4_core: Maintain a persistent memory for mlx4 device 2015-01-25 14:43:13 -08:00
resource_tracker.c net/mlx4_en: Support ndo_get_vf_stats 2015-06-15 17:23:03 -07: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 IB/mlx4: Implement IB_QP_CREATE_USE_GFP_NOIO 2014-06-02 14:58:11 -07:00