Re: [PATCH 3/5] cgroup/cpuset: Allow non-top parent partition root to distribute out all CPUs
From: Waiman Long <hidden>
Date: 2021-06-17 20:45:43
Also in:
cgroups, linux-kselftest, lkml
From: Waiman Long <hidden>
Date: 2021-06-17 20:45:43
Also in:
cgroups, linux-kselftest, lkml
On 6/16/21 4:57 PM, Tejun Heo wrote:
Hello, On Thu, Jun 03, 2021 at 05:24:14PM -0400, Waiman Long wrote:quoted
@@ -2181,6 +2192,13 @@ static int cpuset_can_attach(struct cgroup_taskset *tset) (cpumask_empty(cs->cpus_allowed) || nodes_empty(cs->mems_allowed))) goto out_unlock; + /* + * On default hierarchy, task cannot be moved to a cpuset with empty + * effective cpus. + */ + if (is_in_v2_mode() && cpumask_empty(cs->effective_cpus)) + goto out_unlock; +This is inconsistent with how other events which leave a root partition empty is handled. Woudln't it be more consistent to switch the parent to PRS_ERROR and behave accordingly but allow it to have valid child roots?
From my point of view, PRS_ERROR is used when cpus are gone because of cpu hotplug (offline). It can be a temporary condition that will be corrected later on. I don't want to use PRS_ERROR for the particular case that the users have explicitly distributed out all the cpus to child partitions. I will clarify it in the next version and double check to make sure that this rule is consistently apply. Thanks, Longman