kernel-fxtec-pro1x/drivers/infiniband/ulp/ipoib
Eli Cohen f0dc117abd IPoIB: Fix TX queue lockup with mixed UD/CM traffic
The IPoIB UD QP reports send completions to priv->send_cq, which is
usually left unarmed; it only gets armed when the number of
outstanding send requests reaches the size of the TX queue. This
arming is done only in the send path for the UD QP.  However, when
sending CM packets, the net queue may be stopped for the same reasons
but no measures are taken to recover the UD path from a lockup.

Consider this scenario: a host sends high rate of both CM and UD
packets, with a TX queue length of N.  If at some time the number of
outstanding UD packets is more than N/2 and the overall outstanding
packets is N-1, and CM sends a packet (making the number of
outstanding sends equal N), the TX queue will be stopped.  When all
the CM packets complete, the number of outstanding packets will still
be higher than N/2 so the TX queue will not be restarted.

Fix this by calling ib_req_notify_cq() when the queue is stopped in
the CM path.

Signed-off-by: Eli Cohen <eli@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2010-03-11 13:37:11 -08:00
..
ipoib.h infiniband: remove IPOIB_GID_RAW_ARG, IPOIB_GID_ARG, IPOIB_GID_FMT 2008-10-28 23:02:37 -07:00
ipoib_cm.c IPoIB: Fix TX queue lockup with mixed UD/CM traffic 2010-03-11 13:37:11 -08:00
ipoib_ethtool.c IPoIB: Remove TX moderation settings from ethtool support 2010-02-11 15:40:40 -08:00
ipoib_fs.c RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
ipoib_ib.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2009-09-14 10:37:28 -07:00
ipoib_main.c IPoIB: Clear ipoib_neigh.dgid in ipoib_neigh_alloc() 2009-12-09 10:03:00 -08:00
ipoib_multicast.c ipoib: returned back addrlen check for mc addresses 2010-02-28 01:34:28 -08:00
ipoib_verbs.c IPoIB: Get rid of ipoib_mcast_detach() wrapper 2008-07-14 23:48:50 -07:00
ipoib_vlan.c net: Fix ipoib rtnl_lock sysfs deadlock. 2009-05-18 22:15:59 -07:00
Kconfig IPoIB: Correct help text for INFINIBAND_IPOIB_DEBUG 2008-07-24 20:37:25 -07:00
Makefile IPoIB: Add basic ethtool support 2008-04-16 21:09:32 -07:00