IB/{rdmavt, hfi1, qib}: Add a counter for credit waits
This patch adds a counter for credit waits to assist field debugging. Link: https://lore.kernel.org/r/20190911113047.126040.10857.stgit@awfm-01.aw.intel.com Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Kaike Wan <kaike.wan@intel.com> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:

committad av
Jason Gunthorpe

förälder
c05fc15634
incheckning
7199435414
@@ -4101,6 +4101,7 @@ def_access_ibp_counter(rc_dupreq);
|
||||
def_access_ibp_counter(rdma_seq);
|
||||
def_access_ibp_counter(unaligned);
|
||||
def_access_ibp_counter(seq_naks);
|
||||
def_access_ibp_counter(rc_crwaits);
|
||||
|
||||
static struct cntr_entry dev_cntrs[DEV_CNTR_LAST] = {
|
||||
[C_RCV_OVF] = RXE32_DEV_CNTR_ELEM(RcvOverflow, RCV_BUF_OVFL_CNT, CNTR_SYNTH),
|
||||
@@ -5119,6 +5120,7 @@ static struct cntr_entry port_cntrs[PORT_CNTR_LAST] = {
|
||||
[C_SW_IBP_RDMA_SEQ] = SW_IBP_CNTR(RdmaSeq, rdma_seq),
|
||||
[C_SW_IBP_UNALIGNED] = SW_IBP_CNTR(Unaligned, unaligned),
|
||||
[C_SW_IBP_SEQ_NAK] = SW_IBP_CNTR(SeqNak, seq_naks),
|
||||
[C_SW_IBP_RC_CRWAITS] = SW_IBP_CNTR(RcCrWait, rc_crwaits),
|
||||
[C_SW_CPU_RC_ACKS] = CNTR_ELEM("RcAcks", 0, 0, CNTR_NORMAL,
|
||||
access_sw_cpu_rc_acks),
|
||||
[C_SW_CPU_RC_QACKS] = CNTR_ELEM("RcQacks", 0, 0, CNTR_NORMAL,
|
||||
|
@@ -1245,6 +1245,7 @@ enum {
|
||||
C_SW_IBP_RDMA_SEQ,
|
||||
C_SW_IBP_UNALIGNED,
|
||||
C_SW_IBP_SEQ_NAK,
|
||||
C_SW_IBP_RC_CRWAITS,
|
||||
C_SW_CPU_RC_ACKS,
|
||||
C_SW_CPU_RC_QACKS,
|
||||
C_SW_CPU_RC_DELAYED_COMP,
|
||||
|
@@ -595,11 +595,8 @@ check_s_state:
|
||||
case IB_WR_SEND_WITH_IMM:
|
||||
case IB_WR_SEND_WITH_INV:
|
||||
/* If no credit, return. */
|
||||
if (!(qp->s_flags & RVT_S_UNLIMITED_CREDIT) &&
|
||||
rvt_cmp_msn(wqe->ssn, qp->s_lsn + 1) > 0) {
|
||||
qp->s_flags |= RVT_S_WAIT_SSN_CREDIT;
|
||||
if (!rvt_rc_credit_avail(qp, wqe))
|
||||
goto bail;
|
||||
}
|
||||
if (len > pmtu) {
|
||||
qp->s_state = OP(SEND_FIRST);
|
||||
len = pmtu;
|
||||
@@ -632,11 +629,8 @@ check_s_state:
|
||||
goto no_flow_control;
|
||||
case IB_WR_RDMA_WRITE_WITH_IMM:
|
||||
/* If no credit, return. */
|
||||
if (!(qp->s_flags & RVT_S_UNLIMITED_CREDIT) &&
|
||||
rvt_cmp_msn(wqe->ssn, qp->s_lsn + 1) > 0) {
|
||||
qp->s_flags |= RVT_S_WAIT_SSN_CREDIT;
|
||||
if (!rvt_rc_credit_avail(qp, wqe))
|
||||
goto bail;
|
||||
}
|
||||
no_flow_control:
|
||||
put_ib_reth_vaddr(
|
||||
wqe->rdma_wr.remote_addr,
|
||||
|
Referens i nytt ärende
Block a user