Skip to content

Commit

Permalink
sunrpc: Simplify trace_svc_recv
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: J. Bruce Fields <[email protected]>
  • Loading branch information
chucklever authored and J. Bruce Fields committed Apr 3, 2018
1 parent 7dbb53b commit 41f306d
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 8 deletions.
14 changes: 7 additions & 7 deletions include/trace/events/sunrpc.h
Original file line number Diff line number Diff line change
Expand Up @@ -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))
);

Expand Down
1 change: 0 additions & 1 deletion net/sunrpc/svc_xprt.c
Original file line number Diff line number Diff line change
Expand Up @@ -848,7 +848,6 @@ int svc_recv(struct svc_rqst *rqstp, long timeout)
rqstp->rq_res.len = 0;
svc_xprt_release(rqstp);
out:
trace_svc_recv(rqstp, err);
return err;
}
EXPORT_SYMBOL_GPL(svc_recv);
Expand Down

0 comments on commit 41f306d

Please sign in to comment.