Commit 86523d8d authored by David Sterba's avatar David Sterba
Browse files

btrfs: reorder members in btrfs_delayed_root for better packing



There are two unnecessary 4B holes in btrfs_delayed_root;

struct btrfs_delayed_root {
        spinlock_t                 lock;                 /*     0     4 */

        /* XXX 4 bytes hole, try to pack */

        struct list_head           node_list;            /*     8    16 */
        struct list_head           prepare_list;         /*    24    16 */
        atomic_t                   items;                /*    40     4 */
        atomic_t                   items_seq;            /*    44     4 */
        int                        nodes;                /*    48     4 */

        /* XXX 4 bytes hole, try to pack */

        wait_queue_head_t          wait;                 /*    56    24 */

        /* size: 80, cachelines: 2, members: 7 */
        /* sum members: 72, holes: 2, sum holes: 8 */
        /* last cacheline: 16 bytes */
};

Reordering 'nodes' after 'lock' reduces size by 8B, to 72 on release
config.

Reviewed-by: default avatarBoris Burkov <boris@bur.io>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent c8bafc8d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -465,6 +465,7 @@ struct btrfs_commit_stats {

struct btrfs_delayed_root {
	spinlock_t lock;
	int nodes;		/* for delayed nodes */
	struct list_head node_list;
	/*
	 * Used for delayed nodes which is waiting to be dealt with by the
@@ -474,7 +475,6 @@ struct btrfs_delayed_root {
	struct list_head prepare_list;
	atomic_t items;		/* for delayed items */
	atomic_t items_seq;	/* for delayed items */
	int nodes;		/* for delayed nodes */
	wait_queue_head_t wait;
};