aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Chuck Lever <chuck.lever@oracle.com> 2018-03-27 10:50:42 -0400
committerGravatar J. Bruce Fields <bfields@redhat.com> 2018-04-03 15:08:11 -0400
commit41f306d0c287e0cc04054135f9f4ceb003ad6795 (patch)
treee155d146aa48999173d7d094f5906e2051b5b24e
parentsunrpc: Simplify do_enqueue tracing (diff)
downloadlinux-41f306d0c287e0cc04054135f9f4ceb003ad6795.tar.gz
linux-41f306d0c287e0cc04054135f9f4ceb003ad6795.tar.bz2
linux-41f306d0c287e0cc04054135f9f4ceb003ad6795.zip
sunrpc: Simplify trace_svc_recv
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>
-rw-r--r--include/trace/events/sunrpc.h14
-rw-r--r--net/sunrpc/svc_xprt.c1
2 files changed, 7 insertions, 8 deletions
diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h
index 9bba3070f873..5849bfb3ece2 100644
--- a/include/trace/events/sunrpc.h
+++ b/include/trace/events/sunrpc.h
@@ -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))
);
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index 5fe150c78d0a..47384d0b1673 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -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);