lkml.org 
[lkml]   [2021]   [Dec]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v9 2/7] cgroup/cpuset: Allow no-task partition to have empty cpuset.cpus.effective
From
On 12/13/21 15:45, Tejun Heo wrote:
> On Sun, Dec 05, 2021 at 01:32:15PM -0500, Waiman Long wrote:
>> adding = deleting = false;
>> old_prs = new_prs = cpuset->partition_root_state;
>> if (cmd == partcmd_enable) {
>> + /*
>> + * Enabling partition root is not allowed if not all the CPUs
>> + * can be granted from parent's effective_cpus.
>> + */
>> + if (!cpumask_subset(cpuset->cpus_allowed, parent->effective_cpus))
>> + return -EINVAL;
>> +
>> + /*
>> + * A parent can be left with no CPU as long as there is no
>> + * task directly associated with the parent partition. For
>> + * such a parent, no new task can be moved into it.
>> + */
>> + if (partition_is_populated(parent, cpuset) &&
>> + cpumask_equal(cpuset->cpus_allowed, parent->effective_cpus))
>> + return -EINVAL;
> So, given that this only happens with threaded domains, can we just not
> allow partitions within threaded domains? The combination doesn't make whole
> lot of sense to me anyway.
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. That is why I put in this conditional check. It has
nothing to do with the use of threaded domains.
>> + /*
>> + * 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;
> And then we can avoid this extra restriction too, right?

This check is supposed to prevent a task to be moved to a leaf cpuset
partition with just offlined cpus and hence no effective cpu. A possible
alternative is to force the partition to become invalid, but I think not
allowing the move is easier until one or more offlined cpus are onlined.

Cheers,
Longman

\
 
 \ /
  Last update: 2021-12-15 04:25    [W:2.026 / U:0.876 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site