summaryrefslogtreecommitdiff
path: root/drivers/infiniband/ulp/iser/iscsi_iser.h
diff options
context:
space:
mode:
authorSagi Grimberg <sagig@mellanox.com>2014-10-01 15:02:11 +0400
committerRoland Dreier <roland@purestorage.com>2014-10-09 11:06:07 +0400
commit6e6fe2fb1d61b4baef1cf350049c6877583681ee (patch)
tree67293f7bfbed569b1b5150f4a4b077c626804b1b /drivers/infiniband/ulp/iser/iscsi_iser.h
parentff3dd52d267165347d6f92a90016e692d074a00c (diff)
downloadlinux-6e6fe2fb1d61b4baef1cf350049c6877583681ee.tar.xz
IB/iser: Optimize completion polling
Poll in batch of 16. Since we don't want it on the stack, keep under iser completion context (iser_comp). Signed-off-by: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/ulp/iser/iscsi_iser.h')
-rw-r--r--drivers/infiniband/ulp/iser/iscsi_iser.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.h b/drivers/infiniband/ulp/iser/iscsi_iser.h
index 4fcb25604d80..6c3743b6860e 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.h
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.h
@@ -145,6 +145,8 @@
ISER_MAX_TX_MISC_PDUS + \
ISER_MAX_RX_MISC_PDUS)
+#define ISER_WC_BATCH_COUNT 16
+
#define ISER_VER 0x10
#define ISER_WSV 0x08
#define ISER_RSV 0x04
@@ -273,6 +275,7 @@ struct iscsi_iser_task;
*
* @device: pointer to device handle
* @cq: completion queue
+ * @wcs: work completion array
* @tasklet: Tasklet handle
* @active_qps: Number of active QPs attached
* to completion context
@@ -280,6 +283,7 @@ struct iscsi_iser_task;
struct iser_comp {
struct iser_device *device;
struct ib_cq *cq;
+ struct ib_wc wcs[ISER_WC_BATCH_COUNT];
struct tasklet_struct tasklet;
int active_qps;
};