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)
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>

No differences found