mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-19 23:47:39 +07:00
xprtrmda: Reduce lock contention in completion handlers
Skip the ib_poll_cq() after re-arming, if the provider knows there
are no additional items waiting. (Have a look at commit ed23a727
for
more details).
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
fc66448549
commit
7f23f6f6e3
@ -192,8 +192,11 @@ rpcrdma_sendcq_upcall(struct ib_cq *cq, void *cq_context)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ib_req_notify_cq(cq, IB_CQ_NEXT_COMP);
|
rc = ib_req_notify_cq(cq,
|
||||||
if (rc) {
|
IB_CQ_NEXT_COMP | IB_CQ_REPORT_MISSED_EVENTS);
|
||||||
|
if (rc == 0)
|
||||||
|
return;
|
||||||
|
if (rc < 0) {
|
||||||
dprintk("RPC: %s: ib_req_notify_cq failed: %i\n",
|
dprintk("RPC: %s: ib_req_notify_cq failed: %i\n",
|
||||||
__func__, rc);
|
__func__, rc);
|
||||||
return;
|
return;
|
||||||
@ -272,8 +275,11 @@ rpcrdma_recvcq_upcall(struct ib_cq *cq, void *cq_context)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = ib_req_notify_cq(cq, IB_CQ_NEXT_COMP);
|
rc = ib_req_notify_cq(cq,
|
||||||
if (rc) {
|
IB_CQ_NEXT_COMP | IB_CQ_REPORT_MISSED_EVENTS);
|
||||||
|
if (rc == 0)
|
||||||
|
return;
|
||||||
|
if (rc < 0) {
|
||||||
dprintk("RPC: %s: ib_req_notify_cq failed: %i\n",
|
dprintk("RPC: %s: ib_req_notify_cq failed: %i\n",
|
||||||
__func__, rc);
|
__func__, rc);
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user