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

Gao Xiang hsiangkao at linux.alibaba.com
Wed Feb 16 23:28:43 AEDT 2022


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(-)

-- 
2.24.4



More information about the Linux-erofs mailing list