From: Gregory Price <gourry@gourry.net>
To: "Michal Koutný" <mkoutny@suse.com>
Cc: linux-mm@kvack.org, cgroups@vger.kernel.org,
linux-cxl@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
kernel-team@meta.com, longman@redhat.com, tj@kernel.org,
hannes@cmpxchg.org, corbet@lwn.net, gregkh@linuxfoundation.org,
rafael@kernel.org, dakr@kernel.org, dave@stgolabs.net,
jonathan.cameron@huawei.com, dave.jiang@intel.com,
alison.schofield@intel.com, vishal.l.verma@intel.com,
ira.weiny@intel.com, dan.j.williams@intel.com,
akpm@linux-foundation.org, vbabka@suse.cz, surenb@google.com,
mhocko@suse.com, jackmanb@google.com, ziy@nvidia.com,
david@kernel.org, lorenzo.stoakes@oracle.com,
Liam.Howlett@oracle.com, rppt@kernel.org,
axelrasmussen@google.com, yuanchu@google.com, weixugc@google.com,
yury.norov@gmail.com, linux@rasmusvillemoes.dk,
rientjes@google.com, shakeel.butt@linux.dev, chrisl@kernel.org,
kasong@tencent.com, shikemeng@huaweicloud.com, nphamcs@gmail.com,
bhe@redhat.com, baohua@kernel.org, yosry.ahmed@linux.dev,
chengming.zhou@linux.dev, roman.gushchin@linux.dev,
muchun.song@linux.dev, osalvador@suse.de,
matthew.brost@intel.com, joshua.hahnjy@gmail.com,
rakie.kim@sk.com, byungchul@sk.com, ying.huang@linux.alibaba.com,
apopple@nvidia.com, cl@gentwo.org, harry.yoo@oracle.com,
zhengqi.arch@bytedance.com
Subject: Re: [RFC PATCH v3 5/8] Documentation/admin-guide/cgroups: update docs for mems_allowed
Date: Mon, 12 Jan 2026 10:25:44 -0500 [thread overview]
Message-ID: <aWUSeFzxouq2vwg8@gourry-fedora-PF4VCD3F> (raw)
In-Reply-To: <o6eky3g4jyvtc2cy6lk7rjc6or6tcvwbhdarrlpn4geuibvrul@65fygkf6vg44>
On Mon, Jan 12, 2026 at 03:30:26PM +0100, Michal Koutný wrote:
> Hello.
>
> On Thu, Jan 08, 2026 at 03:37:52PM -0500, Gregory Price <gourry@gourry.net> wrote:
> > --- a/Documentation/admin-guide/cgroup-v2.rst
> > +++ b/Documentation/admin-guide/cgroup-v2.rst
> > @@ -2530,8 +2530,11 @@ Cpuset Interface Files
> > cpuset-enabled cgroups.
> >
> > It lists the onlined memory nodes that are actually granted to
> > - this cgroup by its parent. These memory nodes are allowed to
> > - be used by tasks within the current cgroup.
> > + this cgroup by its parent. This includes both regular SystemRAM
> > + nodes (N_MEMORY) and Private Nodes (N_PRIVATE) that provide
> > + device-specific memory not intended for general consumption.
> > + Tasks within this cgroup may access Private Nodes using explicit
> > + __GFP_THISNODE allocations if the node is in this mask.
>
> Notice that these files are exposed for userspace. Hence I'm not sure
> they'd be able to ask for allocations like this (or even need to know
> about this implementation detail).
>
Fair, I can drop this, the intent is actually to limit user-space
knowledge of this at all.
> >
> > If "cpuset.mems" is empty, it shows all the memory nodes from the
> > parent cgroup that will be available to be used by this cgroup.
> > @@ -2541,6 +2544,25 @@ Cpuset Interface Files
> >
> > Its value will be affected by memory nodes hotplug events.
> >
> > + cpuset.mems.sysram
> > + A read-only multiple values file which exists on all
> > + cpuset-enabled cgroups.
> > +
> > + It lists the SystemRAM nodes (N_MEMORY) that are available for
> > + general memory allocation by tasks within this cgroup. This is
> > + a subset of "cpuset.mems.effective" that excludes Private Nodes.
> > +
> > + Normal page allocations are restricted to nodes in this mask.
> > + The kernel page allocator, slab allocator, and compaction only
> > + consider SystemRAM nodes when allocating memory for tasks.
> > +
> > + Private Nodes are excluded from this mask because their memory
> > + is managed by device drivers for specific purposes (e.g., CXL
> > + compressed memory, accelerator memory) and should not be used
> > + for general allocations.
>
> So I wonder whether the N_PRIVATE nodes should be included in
> cpuset.mems[.effective] at all.
I think it makes the control path easier (both more intuitive and easier
to write in the cpuset code), but I can take another look at this.
Although omitting them from .effective i think prevents the user from
controlling whether their memory ends up on that node.
i.e. the user might be aware that they have compressed memory on node N,
and they have a cgroup that they don't want on node N - not having it
included in mems.allowed / mems.effective means they can't control this.
> (It resembles CPU isolation to me a bit ~ cpuset.cpus.isolated.)
> Maybe you only want to expose it on the root cpuset cg and inverted like
> cpuset.mems.private?
>
Hm, I had not considered adding the separate mask for .private as
opposed to sysram.
If all we actually need to change is the allowed() callback to check an
additional nodemask, that might end up cleaner.
Thank you, I'll take another look at this piece.
~Gregory
next prev parent reply other threads:[~2026-01-12 15:26 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-08 20:37 [RFC PATCH v3 0/8] mm,numa: N_PRIVATE node isolation for device-managed memory Gregory Price
2026-01-08 20:37 ` [RFC PATCH v3 1/8] numa,memory_hotplug: create N_PRIVATE (Private Nodes) Gregory Price
2026-01-08 20:37 ` [RFC PATCH v3 2/8] mm: constify oom_control, scan_control, and alloc_context nodemask Gregory Price
2026-01-08 20:37 ` [RFC PATCH v3 3/8] mm: restrict slub, compaction, and page_alloc to sysram Gregory Price
2026-01-08 20:37 ` [RFC PATCH v3 4/8] cpuset: introduce cpuset.mems.sysram Gregory Price
2026-01-12 17:56 ` Yury Norov
2026-01-08 20:37 ` [RFC PATCH v3 5/8] Documentation/admin-guide/cgroups: update docs for mems_allowed Gregory Price
2026-01-12 14:30 ` Michal Koutný
2026-01-12 15:25 ` Gregory Price [this message]
2026-01-08 20:37 ` [RFC PATCH v3 6/8] drivers/cxl/core/region: add private_region Gregory Price
2026-01-08 20:37 ` [RFC PATCH v3 7/8] mm/zswap: compressed ram direct integration Gregory Price
2026-01-09 16:00 ` Yosry Ahmed
2026-01-09 17:03 ` Gregory Price
2026-01-09 21:40 ` Gregory Price
2026-01-12 21:13 ` Yosry Ahmed
2026-01-12 23:33 ` Gregory Price
2026-01-12 23:46 ` Gregory Price
2026-01-13 16:24 ` Jonathan Cameron
2026-01-15 16:55 ` Yosry Ahmed
2026-01-15 17:26 ` Gregory Price
2026-01-15 22:09 ` Yosry Ahmed
2026-01-13 7:35 ` Nhat Pham
2026-01-13 7:49 ` Nhat Pham
2026-01-15 17:00 ` Yosry Ahmed
2026-01-15 17:32 ` Gregory Price
2026-01-08 20:37 ` [RFC PATCH v3 8/8] drivers/cxl: add zswap private_region type Gregory Price
2026-01-12 11:12 ` [RFC PATCH v3 0/8] mm,numa: N_PRIVATE node isolation for device-managed memory Balbir Singh
2026-01-12 14:36 ` Gregory Price
2026-01-12 17:18 ` Yury Norov
2026-01-12 17:36 ` Gregory Price
2026-01-12 21:24 ` dan.j.williams
2026-01-12 21:57 ` Balbir Singh
2026-01-12 22:10 ` dan.j.williams
2026-01-12 22:54 ` Balbir Singh
2026-01-12 23:40 ` Gregory Price
2026-01-13 1:12 ` Balbir Singh
2026-01-13 1:17 ` dan.j.williams
2026-01-13 2:30 ` Gregory Price
2026-01-13 3:12 ` dan.j.williams
2026-01-13 14:15 ` Gregory Price
2026-01-13 3:24 ` Balbir Singh
2026-01-13 14:21 ` 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=aWUSeFzxouq2vwg8@gourry-fedora-PF4VCD3F \
--to=gourry@gourry.net \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=alison.schofield@intel.com \
--cc=apopple@nvidia.com \
--cc=axelrasmussen@google.com \
--cc=baohua@kernel.org \
--cc=bhe@redhat.com \
--cc=byungchul@sk.com \
--cc=cgroups@vger.kernel.org \
--cc=chengming.zhou@linux.dev \
--cc=chrisl@kernel.org \
--cc=cl@gentwo.org \
--cc=corbet@lwn.net \
--cc=dakr@kernel.org \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=dave@stgolabs.net \
--cc=david@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=hannes@cmpxchg.org \
--cc=harry.yoo@oracle.com \
--cc=ira.weiny@intel.com \
--cc=jackmanb@google.com \
--cc=jonathan.cameron@huawei.com \
--cc=joshua.hahnjy@gmail.com \
--cc=kasong@tencent.com \
--cc=kernel-team@meta.com \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux@rasmusvillemoes.dk \
--cc=longman@redhat.com \
--cc=lorenzo.stoakes@oracle.com \
--cc=matthew.brost@intel.com \
--cc=mhocko@suse.com \
--cc=mkoutny@suse.com \
--cc=muchun.song@linux.dev \
--cc=nphamcs@gmail.com \
--cc=osalvador@suse.de \
--cc=rafael@kernel.org \
--cc=rakie.kim@sk.com \
--cc=rientjes@google.com \
--cc=roman.gushchin@linux.dev \
--cc=rppt@kernel.org \
--cc=shakeel.butt@linux.dev \
--cc=shikemeng@huaweicloud.com \
--cc=surenb@google.com \
--cc=tj@kernel.org \
--cc=vbabka@suse.cz \
--cc=vishal.l.verma@intel.com \
--cc=weixugc@google.com \
--cc=ying.huang@linux.alibaba.com \
--cc=yosry.ahmed@linux.dev \
--cc=yuanchu@google.com \
--cc=yury.norov@gmail.com \
--cc=zhengqi.arch@bytedance.com \
--cc=ziy@nvidia.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