sunrpc: Simplify trace_svc_recv
authorChuck Lever <chuck.lever@oracle.com>
Tue, 27 Mar 2018 14:50:42 +0000 (10:50 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Tue, 3 Apr 2018 19:08:11 +0000 (15:08 -0400)
There doesn't seem to be a lot of value in calling trace_svc_recv
in the failing case.

1. There are two very common cases: one is the transport is not
ready, and the other is shutdown. Neither is terribly interesting.

2. The trace record for the failing case contains nothing but
the status code.

Therefore the trace point call site in the error exit is removed.
Since the trace point is now recording a length instead of a
status, rename the status field and remove the case that records a
zero XID.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
include/trace/events/sunrpc.h
net/sunrpc/svc_xprt.c

index 9bba3070f873ff65a31336ad021c006edbf67ea8..5849bfb3ece226190fdab26346f756cd64d59b62 100644 (file)
@@ -485,28 +485,28 @@ TRACE_EVENT(xs_tcp_data_recv,
                { (1UL << RQ_BUSY),             "RQ_BUSY"})
 
 TRACE_EVENT(svc_recv,
-       TP_PROTO(struct svc_rqst *rqst, int status),
+       TP_PROTO(struct svc_rqst *rqst, int len),
 
-       TP_ARGS(rqst, status),
+       TP_ARGS(rqst, len),
 
        TP_STRUCT__entry(
                __field(u32, xid)
-               __field(int, status)
+               __field(int, len)
                __field(unsigned long, flags)
                __dynamic_array(unsigned char, addr, rqst->rq_addrlen)
        ),
 
        TP_fast_assign(
-               __entry->xid = status > 0 ? be32_to_cpu(rqst->rq_xid) : 0;
-               __entry->status = status;
+               __entry->xid = be32_to_cpu(rqst->rq_xid);
+               __entry->len = len;
                __entry->flags = rqst->rq_flags;
                memcpy(__get_dynamic_array(addr),
                        &rqst->rq_addr, rqst->rq_addrlen);
        ),
 
-       TP_printk("addr=%pIScp xid=0x%08x status=%d flags=%s",
+       TP_printk("addr=%pIScp xid=0x%08x len=%d flags=%s",
                        (struct sockaddr *)__get_dynamic_array(addr),
-                       __entry->xid, __entry->status,
+                       __entry->xid, __entry->len,
                        show_rqstp_flags(__entry->flags))
 );
 
index 5fe150c78d0ad9474ad76b0ef7d6c728e650bb1a..47384d0b1673ff4b8d827ff6ae4d34fc95a455b9 100644 (file)
@@ -848,7 +848,6 @@ out_release:
        rqstp->rq_res.len = 0;
        svc_xprt_release(rqstp);
 out:
-       trace_svc_recv(rqstp, err);
        return err;
 }
 EXPORT_SYMBOL_GPL(svc_recv);