diff options
author | David Sterba <dsterba@suse.com> | 2023-09-08 01:09:35 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2023-10-12 16:44:04 +0200 |
commit | 105c8c42141b7b1ed119cbb93a2930a05f5e681a (patch) | |
tree | f6b175ba06c6eb198ecc7f7bbd864b756bc1461e /fs/btrfs/backref.h | |
parent | 02cd00fa78453a71d6c71d641e1a83a0ef9e375f (diff) |
btrfs: reduce size of prelim_ref::level
The values of level are bounded and fit into a byte so let's use it for
the structure to reduce size from 88 to 80 bytes on a release build,
which increases number of objects in the default 8K slab from 93 to 102.
struct prelim_ref {
struct rb_node rbnode __attribute__((__aligned__(8))); /* 0 24 */
u64 root_id; /* 24 8 */
struct btrfs_key key_for_search; /* 32 17 */
u8 level; /* 49 1 */
/* XXX 2 bytes hole, try to pack */
int count; /* 52 4 */
struct extent_inode_elem * inode_list; /* 56 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
u64 parent; /* 64 8 */
u64 wanted_disk_byte; /* 72 8 */
/* size: 80, cachelines: 2, members: 8 */
/* sum members: 78, holes: 1, sum holes: 2 */
/* forced alignments: 1 */
/* last cacheline: 16 bytes */
} __attribute__((__aligned__(8)));
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/backref.h')
-rw-r--r-- | fs/btrfs/backref.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/backref.h b/fs/btrfs/backref.h index 1616e3e3f1e4..79742935399f 100644 --- a/fs/btrfs/backref.h +++ b/fs/btrfs/backref.h @@ -247,7 +247,7 @@ struct prelim_ref { struct rb_node rbnode; u64 root_id; struct btrfs_key key_for_search; - int level; + u8 level; int count; struct extent_inode_elem *inode_list; u64 parent; |