SUNRPC: provide a mechanism for collecting stats in the RPC client
authorChuck Lever <cel@netapp.com>
Mon, 20 Mar 2006 18:44:22 +0000 (13:44 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 20 Mar 2006 18:44:22 +0000 (13:44 -0500)
Add a simple mechanism for collecting stats in the RPC client.  Stats are
tabulated during xprt_release.  Note that per_cpu shenanigans are not
required here because the RPC client already serializes on the transport
write lock.

Test plan:
Compile kernel with CONFIG_NFS enabled.  Basic performance regression
testing with high-speed networking and high performance server.

Signed-off-by: Chuck Lever <cel@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
include/linux/sunrpc/clnt.h
include/linux/sunrpc/metrics.h [new file with mode: 0644]
net/sunrpc/clnt.c
net/sunrpc/stats.c
net/sunrpc/xprt.c

index f147e6b..0f36620 100644 (file)
@@ -45,7 +45,8 @@ struct rpc_clnt {
        char *                  cl_server;      /* server machine name */
        char *                  cl_protname;    /* protocol name */
        struct rpc_auth *       cl_auth;        /* authenticator */
-       struct rpc_stat *       cl_stats;       /* statistics */
+       struct rpc_stat *       cl_stats;       /* per-program statistics */
+       struct rpc_iostats *    cl_metrics;     /* per-client statistics */
 
        unsigned int            cl_softrtry : 1,/* soft timeouts */
                                cl_intr     : 1,/* interruptible */
Simple merge
Simple merge
Simple merge
Simple merge