[Some people who received this message don't often get email from mhocko@xxxxxxxx. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]I'm sorry for the confusion. But, in reality, the example I gave was just the one we use
On Thu 09-11-23 18:50:36, Huan Yang wrote:
在 2023/11/9 18:39, Michal Hocko 写道:OK, sthis is likely a terminology gap on my end. By application you do
[Some people who received this message don't often get email from mhocko@xxxxxxxx. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]There is a key point here. We want to use the grouping policy of memcg
On Thu 09-11-23 18:29:03, Huan Yang wrote:
HI Michal Hocko,You are proposing an extension to the pro-active reclaim interface so
Thanks for your suggestion.
在 2023/11/9 17:57, Michal Hocko 写道:
[Some people who received this message don't often get email from mhocko@xxxxxxxx. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]Madvise may not be applicable in this scenario.(IMO)
On Thu 09-11-23 11:38:56, Huan Yang wrote:
[...]
If that is the case and this is mostly application centric (which youIf so, is it better only to reclaim private anonymous pages explicitly?Yes, in practice, we only proactively compress anonymous pages and do not
want to touch file pages.
seem to be suggesting) then why don't you use madvise(MADV_PAGEOUT)
instead.
This feature is aimed at a core goal, which is to compress the anonymous
pages
of frozen applications.
How to detect that an application is frozen and determine which pages can be
safely reclaimed is the responsibility of the policy part.
Setting madvise for an application is an active behavior, while the above
policy
is a passive approach.(If I misunderstood, please let me know if there is a
better
way to set madvise.)
this is an active behavior pretty much by definition. So I am really not
following you here. Your agent can simply scan the address space of the
application it is going to "freeze" and call pidfd_madvise(MADV_PAGEOUT)
on the private memory is that is really what you want/need.
to perform proactive reclamation with certain tendencies. Your
suggestion is to reclaim memory by scanning the task process space.
However, in the mobile field, memory is usually viewed at the
granularity of an APP.
not really mean a process but rather a whole cgroup. That would have
been really useful to be explicit about.
In mobile field, we usually configure zram to compress anonymous page.
Therefore, after an APP is frozen, we hope to reclaim memory uniformlyIt might be more involved but the primary question is whether it is
according to the pre-grouped APP processes.
Of course, as you suggested, madvise can also achieve this, but
implementing it in the agent may be more complex.(In terms of
achieving the same goal, using memcg to group all the processes of an
APP and perform proactive reclamation is simpler than using madvise
and scanning multiple processes of an application using an agent?)
usable for the specific use case. Madvise interface is not LRU aware but
you are not really talking about that to be a requirement? So it would
really help if you go deeper into details on how is the interface
actually supposed to be used in your case.
This is a question of reclamation tendency, and simply decreasing the limit of the frozen
Also make sure to exaplain why you cannot use other existing interfaces.
For example, why you simply don't decrease the limit of the frozen
cgroup and rely on the normal reclaim process to evict the most cold
memory? What are you basing your anon vs. file proportion decision on?When zram is configured and anonymous pages are reclaimed proactively, the refault
In other words more details, ideally with some numbers and make sure to
describe why existing APIs cannot be used.
--
Michal Hocko
SUSE Labs