mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
cgroup/cpuset: Do housekeeping check before converting invalid partition to valid
When a hotplug event happens or when update_cpumasks_hier() is called, an
invalid partition may be converted back to valid. However check against
housekeeping conflict isn't being done which can lead to a partition
state that violates the housekeeping rules. Update the code to allow
reviving an invalid partition only if it can pass the housekeeping check.
Fixes: 4a74e41888 ("cgroup/cpuset: Check partition conflict with housekeeping setup")
Reviewed-by: Guopeng Zhang <zhangguopeng@kylinos.cn>
Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
9527ff78a4
commit
2c0a5742fc
|
|
@ -1981,9 +1981,15 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
|
|||
bool exclusive = true;
|
||||
|
||||
/*
|
||||
* Convert invalid partition to valid has to
|
||||
* pass the cpu exclusivity test.
|
||||
* Convert invalid partition to valid has to pass the
|
||||
* cpu exclusivity test as well as the housekeeping
|
||||
* check.
|
||||
*/
|
||||
if (prstate_housekeeping_conflict(cs->partition_root_state,
|
||||
parent_prs, xcpus, NULL)) {
|
||||
part_error = PERR_HKEEPING;
|
||||
goto write_error;
|
||||
}
|
||||
rcu_read_lock();
|
||||
cpuset_for_each_child(child, css, parent) {
|
||||
if (child == cs)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user