kernel-ark/drivers/net/cxgb3
Steve Wise e998f245c4 RDMA/cxgb3: Doorbell overflow avoidance and recovery
T3 hardware doorbell FIFO overflows can cause application stalls due
to lost doorbell ring events.  This has been seen when running large
NP IMB alltoall MPI jobs.  The T3 hardware supports an xon/xoff-type
flow control mechanism to help avoid overflowing the HW doorbell FIFO.

This patch uses these interrupts to disable RDMA QP doorbell rings
when we near an overflow condition, and then turn them back on (and
ring all the active QP doorbells) when when the doorbell FIFO empties
out.  In addition if an doorbell ring is dropped by the hardware, the
code will now recover.

Design:

cxgb3:
- enable these DB interrupts
- in the interrupt handler, schedule work tasks to call the ULPs event
  handlers with the new events.
- ring all the qset txqs when an overflow is detected.

iw_cxgb3:
- disable db ringing on all active qps when we get the DB_FULL event
- enable db ringing on all active qps and ring all active dbs when we get
  the DB_EMPTY event
- On DB_DROP event:
       - disable db rings in the event handler
       - delay-schedule a work task which rings and enables the dbs on
         all active qps.
- in post_send and post_recv logic, don't ring the db if it's disabled.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2010-02-24 10:40:28 -08:00
..
adapter.h RDMA/cxgb3: Doorbell overflow avoidance and recovery 2010-02-24 10:40:28 -08:00
ael1002.c cxgb3: use request_firmware() for the EDC registers setup 2009-07-08 10:54:24 -07:00
aq100x.c cxgb3: AQ100X phy support update 2009-07-08 10:54:18 -07:00
common.h cxgb3: declare MODULE_FIRMWARE 2009-11-10 20:28:50 -08:00
cxgb3_ctl_defs.h cxgb3: add control to access embedded images 2008-12-26 01:16:39 -08:00
cxgb3_defs.h cxgb3: extend copyrights to 2008 2008-10-13 18:47:30 -07:00
cxgb3_ioctl.h cxgb3: extend copyrights to 2008 2008-10-13 18:47:30 -07:00
cxgb3_main.c RDMA/cxgb3: Doorbell overflow avoidance and recovery 2010-02-24 10:40:28 -08:00
cxgb3_offload.c RDMA/cxgb3: Handle port events properly 2009-09-05 20:22:38 -07:00
cxgb3_offload.h RDMA/cxgb3: Doorbell overflow avoidance and recovery 2010-02-24 10:40:28 -08:00
firmware_exports.h cxgb3: extend copyrights to 2008 2008-10-13 18:47:30 -07:00
l2t.c cxgb3: Fix kernel crash caused by uninitialized l2t_entry.arpq 2008-10-22 06:22:14 -04:00
l2t.h cxgb3: extend copyrights to 2008 2008-10-13 18:47:30 -07:00
Makefile cxgb3: add support for the Aquantia 10G-BT phy 2009-05-29 15:55:05 -07:00
mc5.c cxgb3: extend copyrights to 2008 2008-10-13 18:47:30 -07:00
regs.h RDMA/cxgb3: Doorbell overflow avoidance and recovery 2010-02-24 10:40:28 -08:00
sge_defs.h
sge.c RDMA/cxgb3: Doorbell overflow avoidance and recovery 2010-02-24 10:40:28 -08:00
t3_cpl.h cxgb3: extend copyrights to 2008 2008-10-13 18:47:30 -07:00
t3_hw.c RDMA/cxgb3: Doorbell overflow avoidance and recovery 2010-02-24 10:40:28 -08:00
t3cdev.h cxgb3: extend copyrights to 2008 2008-10-13 18:47:30 -07:00
version.h cxgb3: Update FW to 7.4.0 2009-06-03 21:01:50 -07:00
vsc8211.c cxgb3: Use generic MDIO definitions and mdio_mii_ioctl() 2009-04-29 17:32:32 -07:00
xgmac.c cxgb3: Fix T3C MAC max packet size access 2009-07-08 10:54:22 -07:00