linux/drivers/infiniband/hw/cxgb4
Steve Wise 1973e8b8ed RDMA/cxgb4: Avoid false GTS CIDX_INC overflows
The T4 IQ hw design assumes CIDX_INC credits will be returned on a
regular basis and always before the CIDX counter crosses over the PIDX
counter.  For RDMA CQs, however, returning CIDX_INC credits is only
needed and desired when and if the CQ is armed for notification.  This
can lead to a GTS write returning credits that causes the HW to reject
the credit update because it causes CIDX to pass PIDX.  Once this
happens, the CIDX/PIDX counters get out of whack and an application
can miss a notification and get stuck blocked awaiting a notification.

To avoid this, we allocate the HW IQ 2x times the requested size.
This seems to avoid the false overflow failures.  If we see more
issues with this, then we'll have to add code in the poll path to
return credits periodically like when the amount reaches 1/2 the queue
depth).  I would like to avoid this as it adds a PCI write transaction
for applications that never arm the CQ (like most MPIs).

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2010-07-06 14:04:04 -07:00
..
cm.c RDMA/cxgb4: Don't call abort_connection() for active connect failures 2010-07-06 14:02:54 -07:00
cq.c RDMA/cxgb4: Avoid false GTS CIDX_INC overflows 2010-07-06 14:04:04 -07:00
device.c RDMA/cxgb4: Register RDMA provider based on LLD state_change events 2010-05-24 21:07:59 -07:00
ev.c MAINTAINERS: Add cxgb4 and iw_cxgb4 entries 2010-05-05 14:45:40 -07:00
iw_cxgb4.h RDMA/cxgb4: Use the DMA state API instead of the pci equivalents 2010-07-06 14:01:42 -07:00
Kconfig
Makefile
mem.c RDMA/cxgb4: Use the DMA state API instead of the pci equivalents 2010-07-06 14:01:42 -07:00
provider.c Merge branches 'cxgb4', 'misc', 'mlx4', 'nes' and 'qib' into for-next 2010-05-25 09:54:03 -07:00
qp.c RDMA/cxgb4: Use the DMA state API instead of the pci equivalents 2010-07-06 14:01:42 -07:00
resource.c
t4.h RDMA/cxgb4: Use the DMA state API instead of the pci equivalents 2010-07-06 14:01:42 -07:00
t4fw_ri_api.h
user.h