OSDN Git Service

SUNRPC: Shrink size of struct rpc_task
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Sat, 23 Jul 2022 18:47:28 +0000 (14:47 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Sat, 23 Jul 2022 18:47:28 +0000 (14:47 -0400)
Move the field 'tk_rpc_status' so that we eliminate a 4 byte hole in the
structure.
For x86_64, this shrinks the size of the struct by 8 bytes.

'pahole' output before the change:
        /* size: 232, cachelines: 4, members: 27 */
        /* sum members: 222, holes: 1, sum holes: 4 */
        /* sum bitfield members: 8 bits (1 bytes) */
        /* padding: 5 */
        /* last cacheline: 40 bytes */

'pahole' output after the change:
        /* size: 224, cachelines: 4, members: 27 */
        /* padding: 1 */
        /* last cacheline: 32 bytes */

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
include/linux/sunrpc/sched.h

index 1d7a3e5..acc6264 100644 (file)
@@ -61,8 +61,6 @@ struct rpc_task {
                struct rpc_wait         tk_wait;        /* RPC wait */
        } u;
 
-       int                     tk_rpc_status;  /* Result of last RPC operation */
-
        /*
         * RPC call state
         */
@@ -82,6 +80,8 @@ struct rpc_task {
        ktime_t                 tk_start;       /* RPC task init timestamp */
 
        pid_t                   tk_owner;       /* Process id for batching tasks */
+
+       int                     tk_rpc_status;  /* Result of last RPC operation */
        unsigned short          tk_flags;       /* misc flags */
        unsigned short          tk_timeouts;    /* maj timeouts */