From: "Huang, Ying" <ying.huang@intel.com>
To: Michal Hocko <mhocko@suse.com>,
Mina Almasry <almasrymina@google.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Yang Shi <yang.shi@linux.alibaba.com>,
Yosry Ahmed <yosryahmed@google.com>,
weixugc@google.com, Tim Chen <tim.c.chen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Tejun Heo <tj@kernel.org>, Zefan Li <lizefan.x@bytedance.com>,
Jonathan Corbet <corbet@lwn.net>,
Roman Gushchin <roman.gushchin@linux.dev>,
Shakeel Butt <shakeelb@google.com>,
Muchun Song <songmuchun@bytedance.com>,
fvdl@google.com, bagasdotme@gmail.com, cgroups@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: Proactive reclaim/demote discussion (was Re: [PATCH] Revert "mm: add nodes= arg to memory.reclaim")
Date: Wed, 04 Jan 2023 16:41:50 +0800 [thread overview]
Message-ID: <87lemiitdd.fsf_-_@yhuang6-desk2.ccr.corp.intel.com> (raw)
In-Reply-To: <Y7PpYsbv1xC6m/Hu@dhcp22.suse.cz> (Michal Hocko's message of "Tue, 3 Jan 2023 09:37:54 +0100")
Michal Hocko <mhocko@suse.com> writes:
[snip]
> This really requires more discussion.
Let's start the discussion with some summary.
Requirements:
- Proactive reclaim. The counting of current per-memcg proactive
reclaim (memory.reclaim) isn't correct. The demoted, but not
reclaimed pages will be counted as reclaimed. So "echo XXM >
memory.reclaim" may exit prematurely before the specified number of
memory is reclaimed.
- Proactive demote. We need an interface to do per-memcg proactive
demote. We may reuse memory.reclaim via extending the concept of
reclaiming to include demoting. Or, we can add a new interface for
that (for example, memory.demote). In addition to demote from fast
tier to slow tier, in theory, we may need to demote from a set of
nodes to another set of nodes for something like general node
balancing.
- Proactive promote. In theory, this is possible, but there's no real
life requirements yet. And it should use a separate interface, so I
don't think we need to discuss that here.
Open questions:
- Use memory.reclaim or memory.demote for proactive demote. In current
memcg context, reclaiming and demoting is quite different, because
reclaiming will uncharge, while demoting will not. But if we will add
per-memory-tier charging finally, the difference disappears. So the
question becomes whether will we add per-memory-tier charging.
- Whether should we demote from faster tier nodes to lower tier nodes
during the proactive reclaiming. Choice A is to keep as much fast
memory as possible. That is, reclaim from the lowest tier nodes
firstly, then the secondary lowest tier nodes, and so on. Choice B is
to demote at the same time of reclaiming. In this way, if we
proactively reclaim XX MB memory, we may free XX MB memory on the
fastest memory nodes.
- When we proactively demote some memory from a fast memory tier, should
we trigger memory competition in the slower memory tiers? That is,
whether to wake up kswapd of the slower memory tiers nodes? If we
want to make per-memcg proactive demoting to be per-memcg strictly, we
should avoid to trigger the global behavior such as triggering memory
competition in the slower memory tiers. Instead, we can add a global
proactive demote interface for that (such as per-memory-tier or
per-node).
Best Regards,
Huang, Ying
next prev parent reply other threads:[~2023-01-04 8:43 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-02 22:35 [PATCH v3] mm: Add nodes= arg to memory.reclaim Mina Almasry
2022-12-02 23:51 ` Shakeel Butt
2022-12-03 3:17 ` Muchun Song
2022-12-12 8:55 ` Michal Hocko
2022-12-13 0:54 ` Mina Almasry
2022-12-13 6:30 ` Huang, Ying
2022-12-13 7:48 ` Wei Xu
2022-12-13 8:51 ` Michal Hocko
2022-12-13 13:42 ` Huang, Ying
2022-12-13 13:30 ` Johannes Weiner
2022-12-13 14:03 ` Michal Hocko
2022-12-13 19:29 ` Mina Almasry
2022-12-14 10:23 ` Michal Hocko
2022-12-15 5:50 ` Huang, Ying
2022-12-15 9:21 ` Michal Hocko
2022-12-16 3:02 ` Huang, Ying
2022-12-15 17:58 ` Wei Xu
2022-12-16 8:40 ` Michal Hocko
2022-12-13 8:33 ` Michal Hocko
2022-12-13 15:58 ` Johannes Weiner
2022-12-13 19:53 ` Mina Almasry
2022-12-14 7:20 ` Huang, Ying
2022-12-14 7:15 ` Huang, Ying
2022-12-14 10:43 ` Michal Hocko
2022-12-16 9:54 ` [PATCH] Revert "mm: add nodes= arg to memory.reclaim" Michal Hocko
2022-12-16 12:02 ` Mina Almasry
2022-12-16 12:22 ` Michal Hocko
2022-12-16 12:28 ` Bagas Sanjaya
2022-12-16 18:18 ` Andrew Morton
2022-12-17 9:57 ` Michal Hocko
2022-12-19 22:42 ` Andrew Morton
2023-01-03 8:37 ` Michal Hocko
2023-01-04 8:41 ` Huang, Ying [this message]
2023-01-18 17:21 ` Proactive reclaim/demote discussion (was Re: [PATCH] Revert "mm: add nodes= arg to memory.reclaim") Michal Hocko
2023-01-19 8:29 ` Huang, Ying
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87lemiitdd.fsf_-_@yhuang6-desk2.ccr.corp.intel.com \
--to=ying.huang@intel.com \
--cc=akpm@linux-foundation.org \
--cc=almasrymina@google.com \
--cc=bagasdotme@gmail.com \
--cc=cgroups@vger.kernel.org \
--cc=corbet@lwn.net \
--cc=fvdl@google.com \
--cc=hannes@cmpxchg.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lizefan.x@bytedance.com \
--cc=mhocko@suse.com \
--cc=roman.gushchin@linux.dev \
--cc=shakeelb@google.com \
--cc=songmuchun@bytedance.com \
--cc=tim.c.chen@linux.intel.com \
--cc=tj@kernel.org \
--cc=weixugc@google.com \
--cc=yang.shi@linux.alibaba.com \
--cc=yosryahmed@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®