xprtrdma: Re-arrange struct rx_stats
authorChuck Lever <chuck.lever@oracle.com>
Tue, 22 Aug 2017 15:19:35 +0000 (11:19 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Tue, 22 Aug 2017 20:19:32 +0000 (16:19 -0400)
To reduce false cacheline sharing, separate counters that are likely
to be accessed in the Call path from those accessed in the Reply
path.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
net/sunrpc/xprtrdma/xprt_rdma.h

index 546c264055960bbabda7328e7db98df4affc9bf2..45dab2475c99ecc1ff83869cfae67582d6bc4a4a 100644 (file)
@@ -441,24 +441,27 @@ struct rpcrdma_create_data_internal {
  * Statistics for RPCRDMA
  */
 struct rpcrdma_stats {
+       /* accessed when sending a call */
        unsigned long           read_chunk_count;
        unsigned long           write_chunk_count;
        unsigned long           reply_chunk_count;
-
        unsigned long long      total_rdma_request;
-       unsigned long long      total_rdma_reply;
 
+       /* rarely accessed error counters */
        unsigned long long      pullup_copy_count;
-       unsigned long long      fixup_copy_count;
        unsigned long           hardway_register_count;
        unsigned long           failed_marshal_count;
        unsigned long           bad_reply_count;
-       unsigned long           nomsg_call_count;
-       unsigned long           bcall_count;
        unsigned long           mrs_recovered;
        unsigned long           mrs_orphaned;
        unsigned long           mrs_allocated;
+
+       /* accessed when receiving a reply */
+       unsigned long long      total_rdma_reply;
+       unsigned long long      fixup_copy_count;
        unsigned long           local_inv_needed;
+       unsigned long           nomsg_call_count;
+       unsigned long           bcall_count;
 };
 
 /*