]> git.baikalelectronics.ru Git - kernel.git/commit
erofs: lzma compression support
authorGao Xiang <hsiangkao@linux.alibaba.com>
Sun, 10 Oct 2021 21:31:45 +0000 (05:31 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Tue, 19 Oct 2021 15:44:30 +0000 (23:44 +0800)
commitb87f89897b91bfe2fec7eb06cdb9e5e035d25d94
tree6e6a3db1cff711620944b9e283c2bd5f4dbd6171
parentd54298e00de5a7e8d0f616a7459d6fa3dbd68c64
erofs: lzma compression support

Add MicroLZMA support in order to maximize compression ratios for
specific scenarios. For example, it's useful for low-end embedded
boards and as a secondary algorithm in a file for specific access
patterns.

MicroLZMA is a new container format for raw LZMA1, which was created
by Lasse Collin aiming to minimize old LZMA headers and get rid of
unnecessary EOPM (end of payload marker) as well as to enable
fixed-sized output compression, especially for 4KiB pclusters.

Similar to LZ4, inplace I/O approach is used to minimize runtime
memory footprint when dealing with I/O. Overlapped decompression is
handled with 1) bounced buffer for data under processing or 2) extra
short-lived pages from the on-stack pagepool which will be shared in
the same read request (128KiB for example).

Link: https://lore.kernel.org/r/20211010213145.17462-8-xiang@kernel.org
Acked-by: Chao Yu <chao@kernel.org>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
fs/erofs/Kconfig
fs/erofs/Makefile
fs/erofs/compress.h
fs/erofs/decompressor.c
fs/erofs/decompressor_lzma.c [new file with mode: 0644]
fs/erofs/erofs_fs.h
fs/erofs/internal.h
fs/erofs/super.c
fs/erofs/zdata.c
fs/erofs/zdata.h
fs/erofs/zmap.c