summaryrefslogtreecommitdiff
path: root/net/sunrpc/xprt.c
diff options
context:
space:
mode:
authorChuck Lever <cel@netapp.com>2006-03-20 18:44:17 (GMT)
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-03-20 18:44:17 (GMT)
commitef759a2e54ed434b2f72b52a14edecd6d4eadf74 (patch)
treeaa495ef4691387839146683dfae0f0084fbe6137 /net/sunrpc/xprt.c
parent262ca07de4d7f1bff20361c1353bb14b3607afb2 (diff)
downloadlinux-fsl-qoriq-ef759a2e54ed434b2f72b52a14edecd6d4eadf74.tar.xz
SUNRPC: introduce per-task RPC iostats
Account for various things that occur while an RPC task is executed. Separate timers for RPC round trip and RPC execution time show how long RPC requests wait in queue before being sent. Eventually these will be accumulated at xprt_release time in one place where they can be viewed from userland. Test plan: Compile kernel with CONFIG_NFS enabled. Signed-off-by: Chuck Lever <cel@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/xprt.c')
-rw-r--r--net/sunrpc/xprt.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c
index 93a0a3c..c624197 100644
--- a/net/sunrpc/xprt.c
+++ b/net/sunrpc/xprt.c
@@ -648,6 +648,8 @@ void xprt_complete_rqst(struct rpc_task *task, int copied)
task->tk_pid, ntohl(req->rq_xid), copied);
task->tk_xprt->stat.recvs++;
+ task->tk_rtt = (long)jiffies - req->rq_xtime;
+
list_del_init(&req->rq_list);
req->rq_received = req->rq_private_buf.len = copied;
rpc_wake_up_task(task);