IB/srp: Split send and recieve CQs to reduce number of interrupts
We can reduce the number of IB interrupts from two interrupts per srp_queuecommand() call to one by using separate CQs for send and receive completions and processing send completions by polling every time a TX IU is allocated. Receive completion events still trigger an interrupt. Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
676ad58553
commit
9c03dc9f19
2 changed files with 53 additions and 25 deletions
|
@ -60,7 +60,6 @@ enum {
|
|||
SRP_RQ_SHIFT = 6,
|
||||
SRP_RQ_SIZE = 1 << SRP_RQ_SHIFT,
|
||||
SRP_SQ_SIZE = SRP_RQ_SIZE - 1,
|
||||
SRP_CQ_SIZE = SRP_SQ_SIZE + SRP_RQ_SIZE,
|
||||
|
||||
SRP_TAG_TSK_MGMT = 1 << (SRP_RQ_SHIFT + 1),
|
||||
|
||||
|
@ -69,8 +68,6 @@ enum {
|
|||
SRP_FMR_DIRTY_SIZE = SRP_FMR_POOL_SIZE / 4
|
||||
};
|
||||
|
||||
#define SRP_OP_RECV (1 << 31)
|
||||
|
||||
enum srp_target_state {
|
||||
SRP_TARGET_LIVE,
|
||||
SRP_TARGET_CONNECTING,
|
||||
|
@ -133,7 +130,8 @@ struct srp_target_port {
|
|||
int path_query_id;
|
||||
|
||||
struct ib_cm_id *cm_id;
|
||||
struct ib_cq *cq;
|
||||
struct ib_cq *recv_cq;
|
||||
struct ib_cq *send_cq;
|
||||
struct ib_qp *qp;
|
||||
|
||||
int max_ti_iu_len;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue