lkml.org 
[lkml]   [2021]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v9 2/7] cgroup/cpuset: Allow no-task partition to have empty cpuset.cpus.effective
    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.

    > + /*
    > + * 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?

    Thanks.

    --
    tejun

    \
     
     \ /
      Last update: 2021-12-13 21:45    [W:2.421 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site