• W
    cpuset: Add an error state to cpuset.sched.partition · 3881b861
    Waiman Long 提交于
    When external events like CPU offlining or user events like changing
    the cpu list of an ancestor cpuset happen, update_cpumasks_hier()
    will be called to update the effective cpus of each of the affected
    cpusets. That will then call update_parent_subparts_cpumask() if
    partitions are impacted.
    
    Currently, these events may cause update_parent_subparts_cpumask()
    to return error if none of the requested cpus are available or it will
    consume all the cpus in the parent partition root. Handling these errors
    is problematic as the states may become inconsistent.
    
    Instead of letting update_parent_subparts_cpumask() return error, a new
    error state (-1) is added to the partition_root_state flag to designate
    the fact that the partition is no longer valid. IOW, it is no longer a
    real partition root, but the CS_CPU_EXCLUSIVE flag will still be set
    as it can be changed back to a real one if favorable change happens
    later on.
    
    This new error state is set internally and user cannot write this new
    value to "cpuset.sched.partition".
    Signed-off-by: NWaiman Long <longman@redhat.com>
    Acked-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: NTejun Heo <tj@kernel.org>
    3881b861
cpuset.c 92.1 KB