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