[PATCH v2] erofs: add a global page pool for lz4 decompression

Gao Xiang hsiangkao at linux.alibaba.com
Wed Jan 10 00:08:18 AEDT 2024


Hi Chunhai,

On 2024/1/9 15:41, Chunhai Guo wrote:
> Using a global page pool for LZ4 decompression significantly reduces the
> time spent on page allocation in low memory scenarios.
> 
> The table below shows the reduction in time spent on page allocation for
> LZ4 decompression when using a global page 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 page pool, there was an average improvement of 150ms in
> the launch time of the camera app, which was obtained from 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 patch currently only supports the LZ4 decompressor, other
> decompressors will be supported in the next step.
> 
> Signed-off-by: Chunhai Guo <guochunhai at vivo.com>


This patch looks good to me, yet we're in the merge window for v6.8.
I will address it after -rc1 is out since no stable tag these days.

Also it would be better to add some results of changing max_distance
if you have more time to test.

Thanks,
Gao Xiang


More information about the Linux-erofs mailing list