Re: [RFC 0/4] Introduce unbalance proactive reclaim

From: Huang, Ying
Date: Wed Nov 08 2023 - 03:11:40 EST


Huan Yang <link@xxxxxxxx> writes:

> HI Huang, Ying
>
> Thanks for reply.
>
> 在 2023/11/8 15:35, Huang, Ying 写道:
>> Huan Yang <link@xxxxxxxx> writes:
>>
>>> In some cases, we need to selectively reclaim file pages or anonymous
>>> pages in an unbalanced manner.
>>>
>>> For example, when an application is pushed to the background and frozen,
>>> it may not be opened for a long time, and we can safely reclaim the
>>> application's anonymous pages, but we do not want to touch the file pages.
>>>
>>> This patchset extends the proactive reclaim interface to achieve
>>> unbalanced reclamation. Users can control the reclamation tendency by
>>> inputting swappiness under the original interface. Specifically, users
>>> can input special values to extremely reclaim specific pages.
>> From mem_cgroup_swappiness(), cgroupv2 doesn't have per-cgroup
>> swappiness. So you need to add that firstly?
> Sorry for this mistake, we always work on cgroupv1, so, not notice
> this commit 4550c4e, thank your for point that.
>
> I see this commit comment that `that's a different discussion`, but,
> to implements this, I will try add.
>
>>
>>> Example:
>>> echo "1G" 200 > memory.reclaim (only reclaim anon)
>>> echo "1G" 0 > memory.reclaim (only reclaim file)
>>> echo "1G" 1 > memory.reclaim (only reclaim file)
>>>
>>> Note that when performing unbalanced reclamation, the cgroup swappiness
>>> will be temporarily adjusted dynamically to the input value. Therefore,
>>> if the cgroup swappiness is further modified during runtime, there may
>>> be some errors.
>> If cgroup swappiness will be adjusted temporarily, why not just change
>> it via a script before/after proactive reclaiming?
> IMO, this unbalance reclaim only takes effect for a single command,
> so if it is pre-set using a script, the judgment of the reclamation tendency
> may become complicated.

If swappiness == 0, then we will only reclaim file pages. If swappiness
== 200, then we may still reclaim file pages. So you need a way to
reclaim only anon pages?

If so, can we use some special swappiness value to specify that? I
don't know whether use 200 will cause regression. If so, we may need
some other value, e.g. >= 65536.

> So, do you mean avoid use cgroup swappiness, just type anon or file to
> control
> this extreme unbalanced reclamation?
>
>>
>>> However, this is acceptable because the interface is dynamically called
>>> by the user and the timing should be controlled by the user.
>>>
>>> This patchset did not implement the type-based reclamation as expected
>>> in the documentation.(anon or file) Because in addition to extreme unbalanced
>>> reclamation, this patchset can also adapt to the reclamation tendency
>>> allocated according to swappiness, which is more flexible.
>>>

--
Best Regards,
Huang, Ying