From: Gregory Price <gregory.price@memverge.com>
To: Michal Hocko <mhocko@suse.com>
Cc: Gregory Price <gourry.memverge@gmail.com>,
linux-kernel@vger.kernel.org, linux-cxl@vger.kernel.org,
linux-mm@kvack.org, cgroups@vger.kernel.org,
linux-doc@vger.kernel.org, ying.huang@intel.com,
akpm@linux-foundation.org, tj@kernel.org,
lizefan.x@bytedance.com, hannes@cmpxchg.org, corbet@lwn.net,
roman.gushchin@linux.dev, shakeelb@google.com,
muchun.song@linux.dev
Subject: Re: [RFC PATCH v4 0/3] memcg weighted interleave mempolicy control
Date: Thu, 9 Nov 2023 11:34:01 -0500 [thread overview]
Message-ID: <ZU0J+RU1fg8peGJH@memverge.com> (raw)
In-Reply-To: <ZUyuL9_8PPiEflnS@tiehlicka>
On Thu, Nov 09, 2023 at 11:02:23AM +0100, Michal Hocko wrote:
> On Wed 08-11-23 19:25:14, Gregory Price wrote:
> > This patchset implements weighted interleave and adds a new cgroup
> > sysfs entry: cgroup/memory.interleave_weights (excluded from root).
>
> Why have you chosen memory controler rather than cpuset controller?
> TBH I do not think memcg is the best fit because traditionally memcg
> accounts consumption rather than memory placement. This means that the
> memory is already allocated when it is charged for a memcg. On the other
> hand cpuset controller is the one to control the allocation placement so
> it would seem a better fit.
> --
> Michal Hocko
> SUSE Labs
Actually going to walk back my last email, memcg actually feels more
correct than cpuset, if only because of what the admin-guide says:
"""
The "memory" controller regulates distribution of memory. [... snip ...]
While not completely water-tight, all major memory usages by a given
cgroup are tracked so that the total memory consumption can be accounted
and controlled to a reasonable extent.
"""
'And controlled to a reasonable extent' seems to fit the description of
this mechanism better than the cpuset description:
"""
The "cpuset" controller provides a mechanism for constraining the CPU and
memory node placement of tasks to only the resources specified in the
cpuset interface files in a task's current cgroup.
"""
This is not a constraining interface... it's "more of a suggestion". In
particular, anything not using interleave doesn't even care about these
weights at all.
The distribution is only enforced for allocation, it does not cause
migrations... thought that would be a neat idea. This is explicitly
why the interface does not allow a weight of 0 (the not should be
omitted from the policy nodemask or cpuset instead).
Even if this were designed to enforce a particular distribution of
memory, I'm not certain that would belong in cpusets either - but I
suppose that is a separate discussion. It's possible this array of
weights could be used to do both, but it seems (at least on the surface)
that making this a hard control is an excellent way to induce OOMs where
you may not want them.
Anyway, summarizing: After a bit of reading, this does seem to map
better to the "accounting consumption" subsystem than the "constrain"
subsystem. However, if you think it's better suited for cpuset, I'm
happy to push in that direction.
~Gregory
next prev parent reply other threads:[~2023-11-09 16:34 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-09 0:25 Gregory Price
2023-11-09 0:25 ` [RFC PATCH v4 1/3] mm/memcontrol: implement memcg.interleave_weights Gregory Price
2023-11-09 0:25 ` [RFC PATCH v4 2/3] mm/mempolicy: implement weighted interleave Gregory Price
2023-11-10 15:26 ` Ravi Jonnalagadda
2023-11-09 0:25 ` [RFC PATCH v4 3/3] Documentation: sysfs entries for cgroup.memory.interleave_weights Gregory Price
2023-11-09 10:02 ` [RFC PATCH v4 0/3] memcg weighted interleave mempolicy control Michal Hocko
2023-11-09 15:10 ` Gregory Price
2023-11-09 16:34 ` Gregory Price [this message]
2023-11-10 9:05 ` Michal Hocko
2023-11-10 21:24 ` Gregory Price
[not found] ` <klhcqksrg7uvdrf6hoi5tegifycjltz2kx2d62hapmw3ulr7oa@woibsnrpgox4>
2023-11-09 22:48 ` John Groves
2023-11-10 22:05 ` tj
2023-11-10 22:29 ` Gregory Price
2023-11-11 3:05 ` tj
2023-11-11 3:42 ` Gregory Price
2023-11-11 11:16 ` tj
2023-11-11 23:54 ` Dan Williams
2023-11-13 2:22 ` Gregory Price
2023-11-14 9:43 ` Michal Hocko
2023-11-14 15:50 ` Gregory Price
2023-11-14 17:01 ` Michal Hocko
2023-11-14 17:49 ` Gregory Price
2023-11-15 5:56 ` Huang, Ying
2023-12-04 3:33 ` Gregory Price
2023-12-04 8:19 ` Huang, Ying
2023-12-04 13:50 ` Gregory Price
2023-12-05 9:01 ` Huang, Ying
2023-12-05 14:47 ` Gregory Price
2023-12-06 0:50 ` Huang, Ying
2023-12-06 2:01 ` Gregory Price
2023-11-10 6:16 ` Huang, Ying
2023-11-10 19:54 ` Gregory Price
2023-11-13 1:31 ` Huang, Ying
2023-11-13 2:28 ` Gregory Price
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=ZU0J+RU1fg8peGJH@memverge.com \
--to=gregory.price@memverge.com \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=corbet@lwn.net \
--cc=gourry.memverge@gmail.com \
--cc=hannes@cmpxchg.org \
--cc=linux-cxl@vger.kernel.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=muchun.song@linux.dev \
--cc=roman.gushchin@linux.dev \
--cc=shakeelb@google.com \
--cc=tj@kernel.org \
--cc=ying.huang@intel.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