xprtrdma: Clean up xprtrdma callback tracepoints
authorChuck Lever <chuck.lever@oracle.com>
Mon, 9 Nov 2020 19:39:53 +0000 (14:39 -0500)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Wed, 11 Nov 2020 15:40:38 +0000 (10:40 -0500)
- Replace displayed kernel memory addresses
- Tie the XID and event with the peer's IP address

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
include/trace/events/rpcrdma.h
net/sunrpc/xprtrdma/backchannel.c

index c28bf17e769b4ed33d6ed2a262d5f17917fe448a..6bdbe11652702b684a91890333e69480b783924c 100644 (file)
@@ -313,38 +313,39 @@ DECLARE_EVENT_CLASS(xprtrdma_mr,
                                ), \
                                TP_ARGS(mr))
 
-DECLARE_EVENT_CLASS(xprtrdma_cb_event,
+DECLARE_EVENT_CLASS(xprtrdma_callback_class,
        TP_PROTO(
+               const struct rpcrdma_xprt *r_xprt,
                const struct rpc_rqst *rqst
        ),
 
-       TP_ARGS(rqst),
+       TP_ARGS(r_xprt, rqst),
 
        TP_STRUCT__entry(
-               __field(const void *, rqst)
-               __field(const void *, rep)
-               __field(const void *, req)
                __field(u32, xid)
+               __string(addr, rpcrdma_addrstr(r_xprt))
+               __string(port, rpcrdma_portstr(r_xprt))
        ),
 
        TP_fast_assign(
-               __entry->rqst = rqst;
-               __entry->req = rpcr_to_rdmar(rqst);
-               __entry->rep = rpcr_to_rdmar(rqst)->rl_reply;
                __entry->xid = be32_to_cpu(rqst->rq_xid);
+               __assign_str(addr, rpcrdma_addrstr(r_xprt));
+               __assign_str(port, rpcrdma_portstr(r_xprt));
        ),
 
-       TP_printk("xid=0x%08x, rqst=%p req=%p rep=%p",
-               __entry->xid, __entry->rqst, __entry->req, __entry->rep
+       TP_printk("peer=[%s]:%s xid=0x%08x",
+               __get_str(addr), __get_str(port), __entry->xid
        )
 );
 
-#define DEFINE_CB_EVENT(name)                                          \
-               DEFINE_EVENT(xprtrdma_cb_event, name,                   \
+#define DEFINE_CALLBACK_EVENT(name)                                    \
+               DEFINE_EVENT(xprtrdma_callback_class,                   \
+                               xprtrdma_cb_##name,                     \
                                TP_PROTO(                               \
+                                       const struct rpcrdma_xprt *r_xprt, \
                                        const struct rpc_rqst *rqst     \
                                ),                                      \
-                               TP_ARGS(rqst))
+                               TP_ARGS(r_xprt, rqst))
 
 /**
  ** Connection events
@@ -1177,8 +1178,8 @@ TRACE_EVENT(xprtrdma_cb_setup,
        )
 );
 
-DEFINE_CB_EVENT(xprtrdma_cb_call);
-DEFINE_CB_EVENT(xprtrdma_cb_reply);
+DEFINE_CALLBACK_EVENT(call);
+DEFINE_CALLBACK_EVENT(reply);
 
 /**
  ** Server-side RPC/RDMA events
index c92c1aac270a06cab9e7dd86c9b6ab6fe1965e56..946edf2db6464f13148de25983047f6191c4216d 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (c) 2015 Oracle.  All rights reserved.
+ * Copyright (c) 2015-2020, Oracle and/or its affiliates.
  *
  * Support for backward direction RPCs on RPC/RDMA.
  */
@@ -82,7 +82,7 @@ static int rpcrdma_bc_marshal_reply(struct rpc_rqst *rqst)
                                      &rqst->rq_snd_buf, rpcrdma_noch_pullup))
                return -EIO;
 
-       trace_xprtrdma_cb_reply(rqst);
+       trace_xprtrdma_cb_reply(r_xprt, rqst);
        return 0;
 }
 
@@ -260,7 +260,7 @@ void rpcrdma_bc_receive_call(struct rpcrdma_xprt *r_xprt,
         */
        req = rpcr_to_rdmar(rqst);
        req->rl_reply = rep;
-       trace_xprtrdma_cb_call(rqst);
+       trace_xprtrdma_cb_call(r_xprt, rqst);
 
        /* Queue rqst for ULP's callback service */
        bc_serv = xprt->bc_serv;