rpcrdma: Introduce a simple cid tracepoint class
De-duplicate some code, making it easier to add new tracepoints that report only a completion ID. Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
907e34a7d0
commit
be2acb1048
@ -22,6 +22,36 @@
|
||||
** Event classes
|
||||
**/
|
||||
|
||||
DECLARE_EVENT_CLASS(rpcrdma_simple_cid_class,
|
||||
TP_PROTO(
|
||||
const struct rpc_rdma_cid *cid
|
||||
),
|
||||
|
||||
TP_ARGS(cid),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(u32, cq_id)
|
||||
__field(int, completion_id)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->cq_id = cid->ci_queue_id;
|
||||
__entry->completion_id = cid->ci_completion_id;
|
||||
),
|
||||
|
||||
TP_printk("cq.id=%d cid=%d",
|
||||
__entry->cq_id, __entry->completion_id
|
||||
)
|
||||
);
|
||||
|
||||
#define DEFINE_SIMPLE_CID_EVENT(name) \
|
||||
DEFINE_EVENT(rpcrdma_simple_cid_class, name, \
|
||||
TP_PROTO( \
|
||||
const struct rpc_rdma_cid *cid \
|
||||
), \
|
||||
TP_ARGS(cid) \
|
||||
)
|
||||
|
||||
DECLARE_EVENT_CLASS(rpcrdma_completion_class,
|
||||
TP_PROTO(
|
||||
const struct ib_wc *wc,
|
||||
@ -62,37 +92,6 @@ DECLARE_EVENT_CLASS(rpcrdma_completion_class,
|
||||
), \
|
||||
TP_ARGS(wc, cid))
|
||||
|
||||
DECLARE_EVENT_CLASS(rpcrdma_send_completion_class,
|
||||
TP_PROTO(
|
||||
const struct ib_wc *wc,
|
||||
const struct rpc_rdma_cid *cid
|
||||
),
|
||||
|
||||
TP_ARGS(wc, cid),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(u32, cq_id)
|
||||
__field(int, completion_id)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->cq_id = cid->ci_queue_id;
|
||||
__entry->completion_id = cid->ci_completion_id;
|
||||
),
|
||||
|
||||
TP_printk("cq.id=%u cid=%d",
|
||||
__entry->cq_id, __entry->completion_id
|
||||
)
|
||||
);
|
||||
|
||||
#define DEFINE_SEND_COMPLETION_EVENT(name) \
|
||||
DEFINE_EVENT(rpcrdma_send_completion_class, name, \
|
||||
TP_PROTO( \
|
||||
const struct ib_wc *wc, \
|
||||
const struct rpc_rdma_cid *cid \
|
||||
), \
|
||||
TP_ARGS(wc, cid))
|
||||
|
||||
DECLARE_EVENT_CLASS(rpcrdma_send_flush_class,
|
||||
TP_PROTO(
|
||||
const struct ib_wc *wc,
|
||||
@ -978,27 +977,7 @@ TRACE_EVENT(xprtrdma_post_send_err,
|
||||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(xprtrdma_post_recv,
|
||||
TP_PROTO(
|
||||
const struct rpcrdma_rep *rep
|
||||
),
|
||||
|
||||
TP_ARGS(rep),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(u32, cq_id)
|
||||
__field(int, completion_id)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->cq_id = rep->rr_cid.ci_queue_id;
|
||||
__entry->completion_id = rep->rr_cid.ci_completion_id;
|
||||
),
|
||||
|
||||
TP_printk("cq.id=%d cid=%d",
|
||||
__entry->cq_id, __entry->completion_id
|
||||
)
|
||||
);
|
||||
DEFINE_SIMPLE_CID_EVENT(xprtrdma_post_recv);
|
||||
|
||||
TRACE_EVENT(xprtrdma_post_recvs,
|
||||
TP_PROTO(
|
||||
@ -2020,31 +1999,11 @@ TRACE_EVENT(svcrdma_post_send,
|
||||
)
|
||||
);
|
||||
|
||||
DEFINE_SEND_COMPLETION_EVENT(svcrdma_wc_send);
|
||||
DEFINE_SIMPLE_CID_EVENT(svcrdma_wc_send);
|
||||
DEFINE_SEND_FLUSH_EVENT(svcrdma_wc_send_flush);
|
||||
DEFINE_SEND_FLUSH_EVENT(svcrdma_wc_send_err);
|
||||
|
||||
TRACE_EVENT(svcrdma_post_recv,
|
||||
TP_PROTO(
|
||||
const struct svc_rdma_recv_ctxt *ctxt
|
||||
),
|
||||
|
||||
TP_ARGS(ctxt),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(u32, cq_id)
|
||||
__field(int, completion_id)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->cq_id = ctxt->rc_cid.ci_queue_id;
|
||||
__entry->completion_id = ctxt->rc_cid.ci_completion_id;
|
||||
),
|
||||
|
||||
TP_printk("cq.id=%d cid=%d",
|
||||
__entry->cq_id, __entry->completion_id
|
||||
)
|
||||
);
|
||||
DEFINE_SIMPLE_CID_EVENT(svcrdma_post_recv);
|
||||
|
||||
DEFINE_RECEIVE_SUCCESS_EVENT(svcrdma_wc_recv);
|
||||
DEFINE_RECEIVE_FLUSH_EVENT(svcrdma_wc_recv_flush);
|
||||
@ -2153,7 +2112,7 @@ TRACE_EVENT(svcrdma_wc_read,
|
||||
DEFINE_SEND_FLUSH_EVENT(svcrdma_wc_read_flush);
|
||||
DEFINE_SEND_FLUSH_EVENT(svcrdma_wc_read_err);
|
||||
|
||||
DEFINE_SEND_COMPLETION_EVENT(svcrdma_wc_write);
|
||||
DEFINE_SIMPLE_CID_EVENT(svcrdma_wc_write);
|
||||
DEFINE_SEND_FLUSH_EVENT(svcrdma_wc_write_flush);
|
||||
DEFINE_SEND_FLUSH_EVENT(svcrdma_wc_write_err);
|
||||
|
||||
|
@ -264,7 +264,7 @@ static bool svc_rdma_refresh_recvs(struct svcxprt_rdma *rdma,
|
||||
if (!ctxt)
|
||||
break;
|
||||
|
||||
trace_svcrdma_post_recv(ctxt);
|
||||
trace_svcrdma_post_recv(&ctxt->rc_cid);
|
||||
ctxt->rc_recv_wr.next = recv_chain;
|
||||
recv_chain = &ctxt->rc_recv_wr;
|
||||
rdma->sc_pending_recvs++;
|
||||
|
@ -282,7 +282,7 @@ static void svc_rdma_write_done(struct ib_cq *cq, struct ib_wc *wc)
|
||||
|
||||
switch (wc->status) {
|
||||
case IB_WC_SUCCESS:
|
||||
trace_svcrdma_wc_write(wc, &cc->cc_cid);
|
||||
trace_svcrdma_wc_write(&cc->cc_cid);
|
||||
break;
|
||||
case IB_WC_WR_FLUSH_ERR:
|
||||
trace_svcrdma_wc_write_flush(wc, &cc->cc_cid);
|
||||
|
@ -305,7 +305,7 @@ static void svc_rdma_wc_send(struct ib_cq *cq, struct ib_wc *wc)
|
||||
if (unlikely(wc->status != IB_WC_SUCCESS))
|
||||
goto flushed;
|
||||
|
||||
trace_svcrdma_wc_send(wc, &ctxt->sc_cid);
|
||||
trace_svcrdma_wc_send(&ctxt->sc_cid);
|
||||
svc_rdma_send_ctxt_put(rdma, ctxt);
|
||||
return;
|
||||
|
||||
|
@ -1364,7 +1364,7 @@ void rpcrdma_post_recvs(struct rpcrdma_xprt *r_xprt, int needed, bool temp)
|
||||
}
|
||||
|
||||
rep->rr_cid.ci_queue_id = ep->re_attr.recv_cq->res.id;
|
||||
trace_xprtrdma_post_recv(rep);
|
||||
trace_xprtrdma_post_recv(&rep->rr_cid);
|
||||
rep->rr_recv_wr.next = wr;
|
||||
wr = &rep->rr_recv_wr;
|
||||
--needed;
|
||||
|
Loading…
Reference in New Issue
Block a user