f2fs: reduce stack memory cost by using bitfield in struct f2fs_io_info
authorChao Yu <chao@kernel.org>
Thu, 2 Feb 2023 07:04:56 +0000 (15:04 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 2 Feb 2023 21:37:16 +0000 (13:37 -0800)
commit2eae077e6e46f9046d383631145750e043820dce
treede30012f63a74b8e66901b458ca58a6eaaf7dc2a
parenta28bca0f47feb5cdfc22be0e563bd4da2aed74f7
f2fs: reduce stack memory cost by using bitfield in struct f2fs_io_info

This patch tries to use bitfield in struct f2fs_io_info to improve
memory usage.

struct f2fs_io_info {
...
unsigned int need_lock:8; /* indicate we need to lock cp_rwsem */
unsigned int version:8; /* version of the node */
unsigned int submitted:1; /* indicate IO submission */
unsigned int in_list:1; /* indicate fio is in io_list */
unsigned int is_por:1; /* indicate IO is from recovery or not */
unsigned int retry:1; /* need to reallocate block address */
unsigned int encrypted:1; /* indicate file is encrypted */
unsigned int post_read:1; /* require post read */
...
};

After this patch, size of struct f2fs_io_info reduces from 136 to 120.

[Nathan: fix a compile warning (single-bit-bitfield-constant-conversion)]
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/checkpoint.c
fs/f2fs/compress.c
fs/f2fs/data.c
fs/f2fs/f2fs.h
fs/f2fs/gc.c
fs/f2fs/node.c
fs/f2fs/segment.c