diff options
author | Sagi Grimberg <sagig@mellanox.com> | 2014-10-01 15:02:11 +0400 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2014-10-09 11:06:07 +0400 |
commit | 6e6fe2fb1d61b4baef1cf350049c6877583681ee (patch) | |
tree | 67293f7bfbed569b1b5150f4a4b077c626804b1b /drivers/infiniband/ulp/iser/iscsi_iser.h | |
parent | ff3dd52d267165347d6f92a90016e692d074a00c (diff) | |
download | linux-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.h | 4 |
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; }; |