diff options
author | Huang Jianan <huangjianan@oppo.com> | 2021-12-06 22:35:52 +0800 |
---|---|---|
committer | Gao Xiang <hsiangkao@linux.alibaba.com> | 2021-12-08 09:42:18 +0800 |
commit | 40452ffca3c1a0f2994e826f9fa213b107f1a2d4 (patch) | |
tree | c7f6126f75ba80183a7a7cd34832d4f75e594455 /fs/erofs/internal.h | |
parent | 168e9a76200c54c584a23aa88c62c53c4b0edd66 (diff) | |
download | linux-stable-40452ffca3c1a0f2994e826f9fa213b107f1a2d4.tar.gz linux-stable-40452ffca3c1a0f2994e826f9fa213b107f1a2d4.tar.bz2 linux-stable-40452ffca3c1a0f2994e826f9fa213b107f1a2d4.zip |
erofs: add sysfs node to control sync decompression strategy
Although readpage is a synchronous path, there will be no additional
kworker scheduling overhead in non-atomic contexts together with
dm-verity.
Let's add a sysfs node to disable sync decompression as an option.
Link: https://lore.kernel.org/r/20211206143552.8384-1-huangjianan@oppo.com
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Huang Jianan <huangjianan@oppo.com>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Diffstat (limited to 'fs/erofs/internal.h')
-rw-r--r-- | fs/erofs/internal.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h index 43f0332fa489..8e70435629e5 100644 --- a/fs/erofs/internal.h +++ b/fs/erofs/internal.h @@ -56,12 +56,18 @@ struct erofs_device_info { u32 mapped_blkaddr; }; +enum { + EROFS_SYNC_DECOMPRESS_AUTO, + EROFS_SYNC_DECOMPRESS_FORCE_ON, + EROFS_SYNC_DECOMPRESS_FORCE_OFF +}; + struct erofs_mount_opts { #ifdef CONFIG_EROFS_FS_ZIP /* current strategy of how to use managed cache */ unsigned char cache_strategy; - /* strategy of sync decompression (false - auto, true - force on) */ - bool readahead_sync_decompress; + /* strategy of sync decompression (0 - auto, 1 - force on, 2 - force off) */ + unsigned int sync_decompress; /* threshold for decompression synchronously */ unsigned int max_sync_decompress_pages; |