mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02: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)						\
 | 
			
		||||
		__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_SYSERR);
 | 
			
		||||
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);
 | 
			
		||||
		else
 | 
			
		||||
			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_reserved = serv->sv_max_mesg;
 | 
			
		||||
		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)
 | 
			
		||||
		serv->sv_stats->netcnt++;
 | 
			
		||||
	trace_svc_recv(rqstp, len);
 | 
			
		||||
	trace_svc_xdr_recvfrom(rqstp, &rqstp->rq_arg);
 | 
			
		||||
	return len;
 | 
			
		||||
out_release:
 | 
			
		||||
	rqstp->rq_res.len = 0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue