svcrdma: trace cc_release calls
authorChuck Lever <chuck.lever@oracle.com>
Mon, 12 Jun 2023 14:13:51 +0000 (10:13 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Sat, 17 Jun 2023 17:18:06 +0000 (13:18 -0400)
This event brackets the svcrdma_post_* trace points. If this trace
event is enabled but does not appear as expected, that indicates a
chunk_ctxt leak.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Acked-by: Tom Talpey <tom@talpey.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
include/trace/events/rpcrdma.h
net/sunrpc/xprtrdma/svc_rdma_rw.c

index 8f461e0..f8069ef 100644 (file)
@@ -2112,6 +2112,14 @@ DEFINE_POST_CHUNK_EVENT(read);
 DEFINE_POST_CHUNK_EVENT(write);
 DEFINE_POST_CHUNK_EVENT(reply);
 
+DEFINE_EVENT(svcrdma_post_chunk_class, svcrdma_cc_release,
+       TP_PROTO(
+               const struct rpc_rdma_cid *cid,
+               int sqecount
+       ),
+       TP_ARGS(cid, sqecount)
+);
+
 TRACE_EVENT(svcrdma_wc_read,
        TP_PROTO(
                const struct ib_wc *wc,
index 59ea87b..9836406 100644 (file)
@@ -191,6 +191,8 @@ static void svc_rdma_cc_release(struct svc_rdma_chunk_ctxt *cc,
        struct svc_rdma_rw_ctxt *ctxt;
        LLIST_HEAD(free);
 
+       trace_svcrdma_cc_release(&cc->cc_cid, cc->cc_sqecount);
+
        first = last = NULL;
        while ((ctxt = svc_rdma_next_ctxt(&cc->cc_rwctxts)) != NULL) {
                list_del(&ctxt->rw_list);