[PATCH v2 0/2] erofs-utils: refine tailpcluster compression approach

Yue Hu zbestahu at gmail.com
Thu Feb 17 19:43:23 AEDT 2022


On Wed, 16 Feb 2022 20:28:43 +0800
Gao Xiang <hsiangkao at linux.alibaba.com> wrote:

> Hi,
> 
> This patchset refines tailpcluster compression. Firstly, instead of
> compressing into many 4KiB pclusters, it compresses into 2 pclusters
> as I already mentioned in the previous comment [1].
> 
> Secondly, it fixes up EOF lclusters which was disabled on purpose before
> in order to achieve better inlining performance for small compressed data,
> which matches the new kernel fix [2].
> 
> Still take linux-5.10.87 as an example (75368 inodes in total):
> linux-5.10.87 (erofs, lz4hc,9 4k tailpacking)	391696384 => 331292672
> linux-5.10.87 (erofs, lz4hc,9 8k tailpacking)	368807936 => 321961984
> linux-5.10.87 (erofs, lz4hc,9 16k tailpacking)	345649152 => 313344000
> linux-5.10.87 (erofs, lz4hc,9 32k tailpacking)  338649088 => 309055488
> 
> (There is still another improvement working in progress..)
> 
> Thanks,
> Gao Xiang
> 
> [1] https://lore.kernel.org/r/YXkBIpcCG12Y8qMN@B-P7TQMD6M-0146.local 
> [2] https://lore.kernel.org/r/20220203190203.30794-1-xiang@kernel.org
> 
> changes since v1 (reported by Yue Hu):
>  - fall back to uncompressed data if EOF lcluster inline is no possible;
>  - fix `ret' signedness.
> 
> Gao Xiang (2):
>   erofs-utils: lib: get rid of a redundent compress round
>   erofs-utils: lib: refine tailpcluster compression approach
> 
>  include/erofs/compress.h |   1 +
>  include/erofs/internal.h |   4 +
>  lib/compress.c           | 156 +++++++++++++++++++++++++++------------
>  lib/inode.c              |   9 ++-
>  4 files changed, 119 insertions(+), 51 deletions(-)
> 

Tested-by: Yue Hu <huyue2 at yulong.com>


More information about the Linux-erofs mailing list