mirror of https://gitee.com/openkylin/linux.git
IB/rdmavt: Add swqe completion trace
The following fields are available for filter/trace: - wqe - wr_id - qpn - qpt - length - idx - ssn - (wr)opcode - (wr)send_flags Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
c6ad9482fc
commit
9260b3541f
|
@ -1028,6 +1028,7 @@ void hfi1_rc_send_complete(struct rvt_qp *qp, struct ib_header *hdr)
|
|||
cmp_psn(qp->s_sending_psn, qp->s_sending_hpsn) <= 0)
|
||||
break;
|
||||
s_last = qp->s_last;
|
||||
trace_hfi1_qp_send_completion(qp, wqe, s_last);
|
||||
if (++s_last >= qp->s_size)
|
||||
s_last = 0;
|
||||
qp->s_last = s_last;
|
||||
|
@ -1079,6 +1080,7 @@ static struct rvt_swqe *do_rc_completion(struct rvt_qp *qp,
|
|||
|
||||
rvt_put_swqe(wqe);
|
||||
s_last = qp->s_last;
|
||||
trace_hfi1_qp_send_completion(qp, wqe, s_last);
|
||||
if (++s_last >= qp->s_size)
|
||||
s_last = 0;
|
||||
qp->s_last = s_last;
|
||||
|
|
|
@ -909,8 +909,10 @@ void hfi1_send_complete(struct rvt_qp *qp, struct rvt_swqe *wqe,
|
|||
|
||||
last = qp->s_last;
|
||||
old_last = last;
|
||||
trace_hfi1_qp_send_completion(qp, wqe, last);
|
||||
if (++last >= qp->s_size)
|
||||
last = 0;
|
||||
trace_hfi1_qp_send_completion(qp, wqe, last);
|
||||
qp->s_last = last;
|
||||
/* See post_send() */
|
||||
barrier();
|
||||
|
|
|
@ -633,6 +633,49 @@ DEFINE_EVENT(hfi1_bct_template, bct_get,
|
|||
TP_PROTO(struct hfi1_devdata *dd, struct buffer_control *bc),
|
||||
TP_ARGS(dd, bc));
|
||||
|
||||
TRACE_EVENT(
|
||||
hfi1_qp_send_completion,
|
||||
TP_PROTO(struct rvt_qp *qp, struct rvt_swqe *wqe, u32 idx),
|
||||
TP_ARGS(qp, wqe, idx),
|
||||
TP_STRUCT__entry(
|
||||
DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
|
||||
__field(struct rvt_swqe *, wqe)
|
||||
__field(u64, wr_id)
|
||||
__field(u32, qpn)
|
||||
__field(u32, qpt)
|
||||
__field(u32, length)
|
||||
__field(u32, idx)
|
||||
__field(u32, ssn)
|
||||
__field(enum ib_wr_opcode, opcode)
|
||||
__field(int, send_flags)
|
||||
),
|
||||
TP_fast_assign(
|
||||
DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device))
|
||||
__entry->wqe = wqe;
|
||||
__entry->wr_id = wqe->wr.wr_id;
|
||||
__entry->qpn = qp->ibqp.qp_num;
|
||||
__entry->qpt = qp->ibqp.qp_type;
|
||||
__entry->length = wqe->length;
|
||||
__entry->idx = idx;
|
||||
__entry->ssn = wqe->ssn;
|
||||
__entry->opcode = wqe->wr.opcode;
|
||||
__entry->send_flags = wqe->wr.send_flags;
|
||||
),
|
||||
TP_printk(
|
||||
"[%s] qpn 0x%x qpt %u wqe %p idx %u wr_id %llx length %u ssn %u opcode %x send_flags %x",
|
||||
__get_str(dev),
|
||||
__entry->qpn,
|
||||
__entry->qpt,
|
||||
__entry->wqe,
|
||||
__entry->idx,
|
||||
__entry->wr_id,
|
||||
__entry->length,
|
||||
__entry->ssn,
|
||||
__entry->opcode,
|
||||
__entry->send_flags
|
||||
)
|
||||
);
|
||||
|
||||
#endif /* __HFI1_TRACE_TX_H */
|
||||
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
|
|
Loading…
Reference in New Issue