On Tue, Dec 14, 2021 at 10:24:22PM -0500, Waiman Long [off-list ref] wrote:
AFAICS, there are code in cpuset.c that disallows the an non-child node to
hold tasks, but the check doesn't cover all the possible cases.
I remembered that I was able to create such a scenario without using
threaded domains.
On the default hierarchy (with controller(s) enabled)? That sounds like a bug.
That is why I put in this conditional check. It has nothing to do with the
use of threaded domains.
But threaded domains are important nevertheless.
I think that a structure like
app-cgroup cgroup.type=threaded domain cpuset.partition=root
`- rt cgroup.type=threaded cpuset.partition=isolated
`- normal cgroup.type=threaded
is a valid use case. Therefore I would not disallow partitioning inside
threaded subtrees (as suggested).
Michal