On Tue, Dec 14, 2021 at 10:24:22PM -0500, Waiman Long longman@redhat.com 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