Commit ede60337 authored by Gao Xiang's avatar Gao Xiang Committed by Chromeos LUCI
Browse files

FROMGIT: 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: default avatarChao Yu <chao@kernel.org>
Signed-off-by: default avatarGao Xiang <hsiangkao@linux.alibaba.com>
(cherry picked from commit a69a59f8
 https://android.googlesource.com/kernel/common

 android13-5.10)

BUG=b:273658215
TEST=`tast run $DUT arc.Boot.vm`
TEST=`tast run $DUT arc.Playstore.vm`

Change-Id: I2d64357ce0c0717780557895f28e01d4e949a6c7
Signed-off-by: default avatarRyuichiro Chiba <chibar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/4584487


Reviewed-by: default avatarHikaru Nishida <hikalium@chromium.org>
Reviewed-by: default avatarSean Paul <sean@poorly.run>
parent 29f1d111
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment