IPoIB/cm: Use common CQ for CM send completions
authorMichael S. Tsirkin <mst@mellanox.co.il>
Thu, 16 Aug 2007 12:36:16 +0000 (15:36 +0300)
committerRoland Dreier <rolandd@cisco.com>
Sat, 20 Oct 2007 04:39:34 +0000 (21:39 -0700)
commit1b524963fd2d7fb20ea68df497151aa9d17fbca4
tree71c6514ea9860027de2180a0470e672654650acc
parentcbfb50e6e2e9c580848c0f51d37c24cdfb1cb704
IPoIB/cm: Use common CQ for CM send completions

Use the same CQ for CM send completions as for all other IPoIB
completions.  This means all completions are processed via the same
NAPI polling routine.  This should help reduce the number of
interrupts for bi-directional traffic (such as TCP) and fixes "driver
is hogging interrupts" errors reported for IPoIB send side, e.g.
<https://bugs.openfabrics.org/show_bug.cgi?id=508>

To do this, keep a per-interface counter of outstanding send WRs, and
stop the interface when this counter reaches the send queue size to
avoid CQ overruns.

Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/ulp/ipoib/ipoib.h
drivers/infiniband/ulp/ipoib/ipoib_cm.c
drivers/infiniband/ulp/ipoib/ipoib_ib.c
drivers/infiniband/ulp/ipoib/ipoib_main.c