svcrdma: trace undersized Write chunks
authorChuck Lever <chuck.lever@oracle.com>
Fri, 20 Mar 2020 18:36:44 +0000 (14:36 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 18 May 2020 14:21:21 +0000 (10:21 -0400)
Clean up: Replace a dprintk call site.

This is the last remaining dprintk call site in svc_rdma_rw.c, so
remove dprintk infrastructure as well.

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

index d6da6b8..c046b19 100644 (file)
@@ -1665,6 +1665,38 @@ TRACE_EVENT(svcrdma_page_overrun_err,
        )
 );
 
+TRACE_EVENT(svcrdma_small_wrch_err,
+       TP_PROTO(
+               const struct svcxprt_rdma *rdma,
+               unsigned int remaining,
+               unsigned int seg_no,
+               unsigned int num_segs
+       ),
+
+       TP_ARGS(rdma, remaining, seg_no, num_segs),
+
+       TP_STRUCT__entry(
+               __field(unsigned int, remaining)
+               __field(unsigned int, seg_no)
+               __field(unsigned int, num_segs)
+               __string(device, rdma->sc_cm_id->device->name)
+               __string(addr, rdma->sc_xprt.xpt_remotebuf)
+       ),
+
+       TP_fast_assign(
+               __entry->remaining = remaining;
+               __entry->seg_no = seg_no;
+               __entry->num_segs = num_segs;
+               __assign_str(device, rdma->sc_cm_id->device->name);
+               __assign_str(addr, rdma->sc_xprt.xpt_remotebuf);
+       ),
+
+       TP_printk("addr=%s device=%s remaining=%u seg_no=%u num_segs=%u",
+               __get_str(addr), __get_str(device), __entry->remaining,
+               __entry->seg_no, __entry->num_segs
+       )
+);
+
 TRACE_EVENT(svcrdma_send_pullup,
        TP_PROTO(
                unsigned int len
index 17098a1..5eb3530 100644 (file)
@@ -9,13 +9,10 @@
 
 #include <linux/sunrpc/rpc_rdma.h>
 #include <linux/sunrpc/svc_rdma.h>
-#include <linux/sunrpc/debug.h>
 
 #include "xprt_rdma.h"
 #include <trace/events/rpcrdma.h>
 
-#define RPCDBG_FACILITY        RPCDBG_SVCXPRT
-
 static void svc_rdma_write_done(struct ib_cq *cq, struct ib_wc *wc);
 static void svc_rdma_wc_read_done(struct ib_cq *cq, struct ib_wc *wc);
 
@@ -484,8 +481,8 @@ svc_rdma_build_writes(struct svc_rdma_write_info *info,
        return 0;
 
 out_overflow:
-       dprintk("svcrdma: inadequate space in Write chunk (%u)\n",
-               info->wi_nsegs);
+       trace_svcrdma_small_wrch_err(rdma, remaining, info->wi_seg_no,
+                                    info->wi_nsegs);
        return -E2BIG;
 }