f2fs: compress: support compress level
authorChao Yu <yuchao0@huawei.com>
Fri, 22 Jan 2021 09:46:43 +0000 (17:46 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 27 Jan 2021 23:20:02 +0000 (15:20 -0800)
commit3fde13f817e23f05ce407d136325df4cbc913e67
treef08ef5383492a72b3a62f8a8cc1cd131ede8d014
parent32be0e97c71366a19d11d1965e3f0957ea0be609
f2fs: compress: support compress level

Expand 'compress_algorithm' mount option to accept parameter as format of
<algorithm>:<level>, by this way, it gives a way to allow user to do more
specified config on lz4 and zstd compression level, then f2fs compression
can provide higher compress ratio.

In order to set compress level for lz4 algorithm, it needs to set
CONFIG_LZ4HC_COMPRESS and CONFIG_F2FS_FS_LZ4HC config to enable lz4hc
compress algorithm.

CR and performance number on lz4/lz4hc algorithm:

dd if=enwik9 of=compressed_file conv=fsync

Original blocks: 244382

lz4 lz4hc-9
compressed blocks 170647 163270
compress ratio 69.8% 66.8%
speed 16.4207 s, 60.9 MB/s 26.7299 s, 37.4 MB/s

compress ratio = after / before

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Documentation/filesystems/f2fs.rst
fs/f2fs/Kconfig
fs/f2fs/compress.c
fs/f2fs/f2fs.h
fs/f2fs/super.c
include/linux/f2fs_fs.h