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 <guochun...@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

Reply via email to