linux/drivers/infiniband/hw/cxgb3
Steve Wise b955150ea7 RDMA/cxgb3: When a user QP is marked in error, also mark the CQs in error
The flushing of work requests for user QPs is implemented entirely in
the user mode library.  The only kernel interaction is to mark the
user QP object indicating it is in error when the QP exits RTS.  When
the user QP operations are called by the application (eg: post_send,
post_recv), the QP in error bit is checked and if set, the library
flushes the QP.  If, however, the application is not doing IO, but
rather just polling the CQ, it will never get flushed work requests.
This breaks some classes of applications.

This patch adds logic to mark user CQs in error when a QP that is bound
to the CQ is marked in error.  The library poll code can then notice
the CQ is in error and flush all the in error QPs bound to that CQ.

Design:

 - add 1 extra CQE entry to the CQ memory that will be used to indicate
   in error status.
 - return the desired CQ memory size that should be mapped by the library
 - bump the ABI since the create_cq uverbs response changes.
 - detect older libraries and reduce the mmap size accordingly.
   (The ABI bump doesn't break old libraries, since they didn't check
   the ABI field anyway)

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2010-10-22 22:00:53 -07:00
..
cxio_dbg.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cxio_hal.c RDMA/cxgb3: When a user QP is marked in error, also mark the CQs in error 2010-10-22 22:00:53 -07:00
cxio_hal.h RDMA/cxgb3: Don't exceed the max HW CQ depth 2010-09-02 14:52:21 -07:00
cxio_resource.c kfifo: fix warn_unused_result 2009-12-22 14:17:56 -08:00
cxio_resource.h RDMA/cxgb3: Remove Open Grid Computing copyrights in iw_cxgb3 driver 2007-02-16 13:57:35 -08:00
cxio_wr.h RDMA/cxgb3: When a user QP is marked in error, also mark the CQs in error 2010-10-22 22:00:53 -07:00
iwch_cm.c RDMA/cxgb3: Turn off RX coalescing for iWARP connections 2010-09-27 09:28:55 -07:00
iwch_cm.h RDMA/cxgb3: Don't free endpoints early 2009-09-05 20:22:38 -07:00
iwch_cq.c RDMA/cxgb3: MEM_MGT_EXTENSIONS support 2008-07-14 23:48:45 -07:00
iwch_ev.c RDMA/cxgb3: When a user QP is marked in error, also mark the CQs in error 2010-10-22 22:00:53 -07:00
iwch_mem.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
iwch_provider.c RDMA/cxgb3: When a user QP is marked in error, also mark the CQs in error 2010-10-22 22:00:53 -07:00
iwch_provider.h RDMA/cxgb3: Fix up MW access rights 2008-08-04 11:05:43 -07:00
iwch_qp.c RDMA/cxgb3: When a user QP is marked in error, also mark the CQs in error 2010-10-22 22:00:53 -07:00
iwch_user.h RDMA/cxgb3: When a user QP is marked in error, also mark the CQs in error 2010-10-22 22:00:53 -07:00
iwch.c RDMA/cxgb3: Shrink .text with compile-time init of handlers arrays 2010-04-28 14:57:40 -07:00
iwch.h RDMA/cxgb3: Doorbell overflow avoidance and recovery 2010-02-24 10:40:28 -08:00
Kconfig IB: Use menuconfig for InfiniBand menu 2007-07-09 20:12:26 -07:00
Makefile INFINIBAND: Remove 'TOPDIR' from Makefiles 2008-01-28 23:14:37 +01:00
tcb.h RDMA/cxgb3: Add driver for Chelsio T3 RNIC 2007-02-12 16:16:18 -08:00