OpenCloudOS-Kernel/drivers/net/ethernet/cavium/thunder
Sunil Goutham bd3ad7d3a1 net: thunderx: Fix transmit queue timeout issue
Transmit queue timeout issue is seen in two cases
- Due to a race condition btw setting stop_queue at xmit()
  and checking for stopped_queue in NAPI poll routine, at times
  transmission from a SQ comes to a halt. This is fixed
  by using barriers and also added a check for SQ free descriptors,
  incase SQ is stopped and there are only CQE_RX i.e no CQE_TX.
- Contrary to an assumption, a HW errata where HW doesn't stop transmission
  even though there are not enough CQEs available for a CQE_TX is
  not fixed in T88 pass 2.x. This results in a Qset error with
  'CQ_WR_FULL' stalling transmission. This is fixed by adjusting
  RXQ's  RED levels for CQ level such that there is always enough
  space left for CQE_TXs.

Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-12-02 13:32:59 -05:00
..
Makefile net: thunderx: Add RGMII interface type support 2016-08-13 11:59:31 -07:00
nic.h net: thunderx: Pause frame support 2016-11-25 20:21:17 -05:00
nic_main.c net: thunderx: Pause frame support 2016-11-25 20:21:17 -05:00
nic_reg.h net: thunderx: Program LMAC credits based on MTU 2016-11-16 13:28:33 -05:00
nicvf_ethtool.c net: thunderx: Pause frame support 2016-11-25 20:21:17 -05:00
nicvf_main.c net: thunderx: Fix transmit queue timeout issue 2016-12-02 13:32:59 -05:00
nicvf_queues.c net: thunderx: Fix transmit queue timeout issue 2016-12-02 13:32:59 -05:00
nicvf_queues.h net: thunderx: Fix transmit queue timeout issue 2016-12-02 13:32:59 -05:00
q_struct.h net: thunderx: Configure RED and backpressure levels 2016-11-25 20:21:17 -05:00
thunder_bgx.c net: thunderx: Pause frame support 2016-11-25 20:21:17 -05:00
thunder_bgx.h net: thunderx: Pause frame support 2016-11-25 20:21:17 -05:00
thunder_xcv.c net: thunderx: Remove unnecessary pci_set_drvdata() 2016-08-15 16:16:11 -07:00