IPoIB/cm: Fix performance regression on Mellanox
authorMichael S. Tsirkin <mst@dev.mellanox.co.il>
Mon, 28 May 2007 11:37:27 +0000 (14:37 +0300)
committerRoland Dreier <rolandd@cisco.com>
Tue, 29 May 2007 23:07:09 +0000 (16:07 -0700)
commitec56dc0b7f6c3fec20bbc2e98ff1a06edf2fc9b9
tree3bb5379d1bc2cd42526fe3d97b728f0d743bca30
parent8b7e15772a286d0ef8e4f8eca422ce5368b6fa97
IPoIB/cm: Fix performance regression on Mellanox

commit 518b1646 ("IPoIB/cm: Fix SRQ WR leak") introduced a severe
performance regression on Mellanox cards, because keeping a QP in the
error state for extended periods of time moves hardware to the slow
path (until the QP is destroyed).  For example, MPI latency goes from
~3 usecs to ~7 usecs.

Fix this by posting a send WR on one of the QPs that are being
flushed, instead of using a separate drain QP that is kept in the
error state.

This fixes bug <https://bugs.openfabrics.org/show_bug.cgi?id=636>,
reported and bisected by Scott Weitzenkamp at Cisco and debugged by
Sasha Mikheev at Voltaire.

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