[PATCH v2] erofs: add a reserved buffer pool for lz4 decompression
Gao Xiang
hsiangkao at linux.alibaba.com
Wed Apr 3 14:24:18 AEDT 2024
On 2024/4/2 21:15, Chunhai Guo wrote:
> This adds a special global buffer pool (in the end) for reserved pages.
>
> Using a reserved pool for LZ4 decompression significantly reduces the
> time spent on extra temporary page allocation for the extreme cases in
> low memory scenarios.
>
> The table below shows the reduction in time spent on page allocation for
> LZ4 decompression when using a reserved pool. The results were obtained
> from multi-app launch benchmarks on ARM64 Android devices running the
> 5.15 kernel with an 8-core CPU and 8GB of memory. In the benchmark, we
> launched 16 frequently-used apps, and the camera app was the last one in
> each round. The data in the table is the average time of camera app for
> each round.
>
> After using the reserved pool, there was an average improvement of 150ms
> in the overall launch time of our camera app, which was obtained from
> the systrace log.
>
> +--------------+---------------+--------------+---------+
> | | w/o page pool | w/ page pool | diff |
> +--------------+---------------+--------------+---------+
> | Average (ms) | 3434 | 21 | -99.38% |
> +--------------+---------------+--------------+---------+
>
> Based on the benchmark logs, 64 pages are sufficient for 95% of
> scenarios. This value can be adjusted from the module parameter.
> The default value is 0.
>
> This pool is currently only used for the LZ4 decompressor, but it can be
> applied to more decompressors if needed.
>
> Signed-off-by: Chunhai Guo <guochunhai at vivo.com>
Reviewed-by: Gao Xiang <hsiangkao at linux.alibaba.com>
Thanks,
Gao Xiang
More information about the Linux-erofs
mailing list