aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2018-03-27 10:50:42 -0400
committerJ. Bruce Fields <bfields@redhat.com>2018-04-03 15:08:11 -0400
commit41f306d0c287e0cc04054135f9f4ceb003ad6795 (patch)
treee155d146aa48999173d7d094f5906e2051b5b24e
parent7dbb53baed3c3969dea43e3cee261a75adde123c (diff)
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,
485 { (1UL << RQ_BUSY), "RQ_BUSY"}) 485 { (1UL << RQ_BUSY), "RQ_BUSY"})
486 486
487TRACE_EVENT(svc_recv, 487TRACE_EVENT(svc_recv,
488 TP_PROTO(struct svc_rqst *rqst, int status), 488 TP_PROTO(struct svc_rqst *rqst, int len),
489 489
490 TP_ARGS(rqst, status), 490 TP_ARGS(rqst, len),
491 491
492 TP_STRUCT__entry( 492 TP_STRUCT__entry(
493 __field(u32, xid) 493 __field(u32, xid)
494 __field(int, status) 494 __field(int, len)
495 __field(unsigned long, flags) 495 __field(unsigned long, flags)
496 __dynamic_array(unsigned char, addr, rqst->rq_addrlen) 496 __dynamic_array(unsigned char, addr, rqst->rq_addrlen)
497 ), 497 ),
498 498
499 TP_fast_assign( 499 TP_fast_assign(
500 __entry->xid = status > 0 ? be32_to_cpu(rqst->rq_xid) : 0; 500 __entry->xid = be32_to_cpu(rqst->rq_xid);
501 __entry->status = status; 501 __entry->len = len;
502 __entry->flags = rqst->rq_flags; 502 __entry->flags = rqst->rq_flags;
503 memcpy(__get_dynamic_array(addr), 503 memcpy(__get_dynamic_array(addr),
504 &rqst->rq_addr, rqst->rq_addrlen); 504 &rqst->rq_addr, rqst->rq_addrlen);
505 ), 505 ),
506 506
507 TP_printk("addr=%pIScp xid=0x%08x status=%d flags=%s", 507 TP_printk("addr=%pIScp xid=0x%08x len=%d flags=%s",
508 (struct sockaddr *)__get_dynamic_array(addr), 508 (struct sockaddr *)__get_dynamic_array(addr),
509 __entry->xid, __entry->status, 509 __entry->xid, __entry->len,
510 show_rqstp_flags(__entry->flags)) 510 show_rqstp_flags(__entry->flags))
511); 511);
512 512
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:
848 rqstp->rq_res.len = 0; 848 rqstp->rq_res.len = 0;
849 svc_xprt_release(rqstp); 849 svc_xprt_release(rqstp);
850out: 850out:
851 trace_svc_recv(rqstp, err);
852 return err; 851 return err;
853} 852}
854EXPORT_SYMBOL_GPL(svc_recv); 853EXPORT_SYMBOL_GPL(svc_recv);