Re: [PATCH v9 2/7] cgroup/cpuset: Allow no-task partition to have empty cpuset.cpus.effective

From: Michal Koutný
Date: Wed Dec 15 2021 - 05:36:36 EST


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