[PATCH v2] erofs: relaxed temporary buffers allocation on readahead

Chunhai Guo guochunhai at vivo.com
Fri Jan 26 14:42:48 AEDT 2024


On 2024/1/26 10:47, Gao Xiang wrote:
> [你通常不会收到来自 hsiangkao at linux.alibaba.com 的电子邮件。请访问 https://aka.ms/LearnAboutSenderIdentification,以了解这一点为什么很重要]
>
> On 2024/1/26 10:41, Chunhai Guo wrote:
>> On 2024/1/22 15:42, Chunhai Guo wrote:
>>> On 2024/1/22 12:37, Gao Xiang wrote:
>>>> [你通常不会收到来自 hsiangkao at linux.alibaba.com 的电子邮件。请访问 https://aka.ms/LearnAboutSenderIdentification,以了解这一点为什么很重要]
>>>>
>>>> On 2024/1/22 11:49, Chunhai Guo wrote:
>>>>> On 2024/1/22 10:07, Gao Xiang wrote:
>>>>>> [你通常不会收到来自 hsiangkao at linux.alibaba.com 的电子邮件。请访问 https://aka.ms/LearnAboutSenderIdentification,以了解这一点为什么很重要]
>>>>>>
>>>>>> On 2024/1/20 22:55, Chunhai Guo wrote:
>>>>>>> Even with inplace decompression, sometimes extra temporary buffers are
>>>>>>> still needed for decompression.  In low-memory scenarios, it would be
>>>>>>> better to try to allocate with GFP_NOWAIT on readahead first. That can
>>>>>>> help reduce the time spent on page allocation under memory pressure.
>>>>>>>
>>>>>>> There is an average reduction of 21% in page allocation time under
>>>>>> It would be better to add a table to show the absolute numbers too
>>>>>> (like what you did in the global pool commit.)  If it's possible, there
>>>>>> is no need to send a update version for this, just reply the updated
>>>>>> commit message and I will update the commit manually.
>>>>> The table below shows detailed numbers. The reduction I mentioned before
>>>>> was not accurate enough. Please help correct the improvement from 21% to
>>>>> 20.21%.
>>>>>
>>>>>
>>>>> +--------------+----------------+---------------+---------+
>>>>> |              | w/o GFP_NOWAIT | w/ GFP_NOWAIT |  diff   |
>>>>> +--------------+----------------+---------------+---------+
>>>>> | Average (ms) |     3364       |      2684     | -20.21% |
>>>>> +--------------+----------------+---------------+---------+
>>>> Did it test without the 16k sliding window change?
>>>> https://lore.kernel.org/linux-erofs/69711d55-f7a2-420b-9ba8-fa2921f66a4c@vivo.com
>>> The result is tested with 64k sliding window change.
>>>
>>>> Could you benchmark these two optimizations together to
>>>> show the extreme optimized case without a global pool?
>>>> With a new table if possible? I will add this to
>>>> the commit message too.
>>> OK. I will reply to this email when the benchmark is finished.
>> The benchmark has been completed and the table below shows that there is
>> an average 52.14% reduction in page allocation time with these two
>> optimizations.
>>
>> +--------------+----------------+---------------+---------+ | | 64k
>> window | 16k window | | | | w/o GFP_NOWAIT | w/ GFP_NOWAIT | diff |
>> +--------------+----------------+---------------+---------+ | Average
>> (ms) | 3364 | 1610 | -52.14% |
>> +--------------+----------------+---------------+---------+
>>
>> Table below summarizes the results of these three benchmarks.
>>
>> +--------------+----------------+----------------+---------------+---------------+
>> |              |   64k window   |   16k window   |   64k window  | 16k
>> window  |
>> |              | w/o GFP_NOWAIT | w/o GFP_NOWAIT | w/ GFP_NOWAIT | w/
>> GFP_NOWAIT |
>> +--------------+----------------+----------------+---------------+---------------+
>> | Average (ms) |     3364       |      2079      |      2684 |
>> 1610     |
>> +--------------+----------------+----------------+---------------+---------------+
>> |     diff     |                |     -38.19%    |     -20.81% |
>> -52.14%   |
>> +--------------+----------------+----------------+---------------+---------------+
>
> The tables shows in a mess, could you just list the
> numbers so I could refine this?

Sorry that there might be some issues with my email client. Here are the
numerical results below.
     64k window w/o GFP_NOWAIT : 3364
     16k window w/o GFP_NOWAIT : 2079, diff: -38.19%
     64k window w/  GFP_NOWAIT : 2684, diff: -20.81%
     16k window w/  GFP_NOWAIT : 1610, diff: -52.14%

Images size comparision:
     64k: 9117044 KB
     16k: 9113096 KB

Thanks,

>
> Thanks,
> Gao Xiang




More information about the Linux-erofs mailing list