mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-05-16 04:04:06 +00:00
SUNRPC: Move the svc_xdr_recvfrom() tracepoint
Commit c509f15a58
("SUNRPC: Split the xdr_buf event class") added
display of the rqst's XID to the svc_xdr_buf_class. However, when
the recvfrom tracepoint fires, rq_xid has yet to be filled in with
the current XID. So it ends up recording the previous XID that was
handled by that svc_rqst.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
71fd721839
commit
156708adf2
2 changed files with 1 additions and 27 deletions
|
@ -1500,30 +1500,6 @@ SVC_RQST_FLAG_LIST
|
||||||
#define show_rqstp_flags(flags) \
|
#define show_rqstp_flags(flags) \
|
||||||
__print_flags(flags, "|", SVC_RQST_FLAG_LIST)
|
__print_flags(flags, "|", SVC_RQST_FLAG_LIST)
|
||||||
|
|
||||||
TRACE_EVENT(svc_recv,
|
|
||||||
TP_PROTO(struct svc_rqst *rqst, int len),
|
|
||||||
|
|
||||||
TP_ARGS(rqst, len),
|
|
||||||
|
|
||||||
TP_STRUCT__entry(
|
|
||||||
__field(u32, xid)
|
|
||||||
__field(int, len)
|
|
||||||
__field(unsigned long, flags)
|
|
||||||
__string(addr, rqst->rq_xprt->xpt_remotebuf)
|
|
||||||
),
|
|
||||||
|
|
||||||
TP_fast_assign(
|
|
||||||
__entry->xid = be32_to_cpu(rqst->rq_xid);
|
|
||||||
__entry->len = len;
|
|
||||||
__entry->flags = rqst->rq_flags;
|
|
||||||
__assign_str(addr, rqst->rq_xprt->xpt_remotebuf);
|
|
||||||
),
|
|
||||||
|
|
||||||
TP_printk("addr=%s xid=0x%08x len=%d flags=%s",
|
|
||||||
__get_str(addr), __entry->xid, __entry->len,
|
|
||||||
show_rqstp_flags(__entry->flags))
|
|
||||||
);
|
|
||||||
|
|
||||||
TRACE_DEFINE_ENUM(SVC_GARBAGE);
|
TRACE_DEFINE_ENUM(SVC_GARBAGE);
|
||||||
TRACE_DEFINE_ENUM(SVC_SYSERR);
|
TRACE_DEFINE_ENUM(SVC_SYSERR);
|
||||||
TRACE_DEFINE_ENUM(SVC_VALID);
|
TRACE_DEFINE_ENUM(SVC_VALID);
|
||||||
|
|
|
@ -813,8 +813,6 @@ static int svc_handle_xprt(struct svc_rqst *rqstp, struct svc_xprt *xprt)
|
||||||
len = svc_deferred_recv(rqstp);
|
len = svc_deferred_recv(rqstp);
|
||||||
else
|
else
|
||||||
len = xprt->xpt_ops->xpo_recvfrom(rqstp);
|
len = xprt->xpt_ops->xpo_recvfrom(rqstp);
|
||||||
if (len > 0)
|
|
||||||
trace_svc_xdr_recvfrom(rqstp, &rqstp->rq_arg);
|
|
||||||
rqstp->rq_stime = ktime_get();
|
rqstp->rq_stime = ktime_get();
|
||||||
rqstp->rq_reserved = serv->sv_max_mesg;
|
rqstp->rq_reserved = serv->sv_max_mesg;
|
||||||
atomic_add(rqstp->rq_reserved, &xprt->xpt_reserved);
|
atomic_add(rqstp->rq_reserved, &xprt->xpt_reserved);
|
||||||
|
@ -868,7 +866,7 @@ int svc_recv(struct svc_rqst *rqstp, long timeout)
|
||||||
|
|
||||||
if (serv->sv_stats)
|
if (serv->sv_stats)
|
||||||
serv->sv_stats->netcnt++;
|
serv->sv_stats->netcnt++;
|
||||||
trace_svc_recv(rqstp, len);
|
trace_svc_xdr_recvfrom(rqstp, &rqstp->rq_arg);
|
||||||
return len;
|
return len;
|
||||||
out_release:
|
out_release:
|
||||||
rqstp->rq_res.len = 0;
|
rqstp->rq_res.len = 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue