linux-stable/drivers/infiniband
Michael S. Tsirkin 92898522e3 IB/mthca: prevent event queue overrun
I am seeing EQ overruns in SDP stress tests: if the CQ completion
handler arms a CQ, this could generate more EQEs, so that EQ will
never get empty and consumer index will never get updated.

This is similiar to what we have with command interface:
		/*
		 * cmd_event() may add more commands.
		 * The card will think the queue has overflowed if
		 * we don't tell it we've been processing events.
		 */
However, for completion events, we *don't* want to update the consumer
index on each event. So, perform EQ doorbell coalescing: allocate EQs
with some spare EQEs, and update once we run out of them.

The value 0x80 was selected to avoid any performance impact.

Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2006-01-09 14:04:40 -08:00
..
core Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2006-01-08 20:18:44 -08:00
hw/mthca IB/mthca: prevent event queue overrun 2006-01-09 14:04:40 -08:00
ulp [PATCH] fix more missing includes 2006-01-08 20:13:45 -08:00
Kconfig IB: Add SCSI RDMA Protocol (SRP) initiator 2005-11-02 14:07:13 -08:00
Makefile IB: Add SCSI RDMA Protocol (SRP) initiator 2005-11-02 14:07:13 -08:00