iser-target: Use single CQ for TX and RX
Using TX and RX CQs attached to the same vector might
create a throttling effect coming from the serial processing
of a work-queue. Use one CQ instead, it will do better in interrupt
processing and it provides a simpler code. Also, We get rid of
redundant isert_rx_wq.
Next we can remove the atomic post_send_buf_count from the IO path.
Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
diff --git a/drivers/infiniband/ulp/isert/ib_isert.h b/drivers/infiniband/ulp/isert/ib_isert.h
index 3f93cb0..5c1a31e 100644
--- a/drivers/infiniband/ulp/isert/ib_isert.h
+++ b/drivers/infiniband/ulp/isert/ib_isert.h
@@ -163,20 +163,16 @@
* struct isert_comp - iSER completion context
*
* @device: pointer to device handle
- * @rx_cq: RX completion queue
- * @tx_cq: TX completion queue
+ * @cq: completion queue
* @active_qps: Number of active QPs attached
* to completion context
- * @rx_work: RX work handle
- * @tx_work: TX work handle
+ * @work: completion work handle
*/
struct isert_comp {
- struct isert_device *device;
- struct ib_cq *rx_cq;
- struct ib_cq *tx_cq;
+ struct isert_device *device;
+ struct ib_cq *cq;
int active_qps;
- struct work_struct rx_work;
- struct work_struct tx_work;
+ struct work_struct work;
};
struct isert_device {