cpuset: use partition_cpus_change for setting exclusive cpus
A previous patch has introduced a new helper function partition_cpus_change(). Now replace the exclusive cpus setting logic with this helper function. Signed-off-by: Chen Ridong <chenridong@huawei.com> Reviewed-by: Waiman Long <longman@redhat.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
+2
-27
@@ -2561,8 +2561,6 @@ static int update_exclusive_cpumask(struct cpuset *cs, struct cpuset *trialcs,
|
||||
{
|
||||
int retval;
|
||||
struct tmpmasks tmp;
|
||||
struct cpuset *parent = parent_cs(cs);
|
||||
bool invalidate = false;
|
||||
bool force = false;
|
||||
int old_prs = cs->partition_root_state;
|
||||
|
||||
@@ -2594,32 +2592,9 @@ static int update_exclusive_cpumask(struct cpuset *cs, struct cpuset *trialcs,
|
||||
if (alloc_tmpmasks(&tmp))
|
||||
return -ENOMEM;
|
||||
|
||||
if (old_prs) {
|
||||
if (cpumask_empty(trialcs->effective_xcpus)) {
|
||||
invalidate = true;
|
||||
cs->prs_err = PERR_INVCPUS;
|
||||
} else if (prstate_housekeeping_conflict(old_prs, trialcs->effective_xcpus)) {
|
||||
invalidate = true;
|
||||
cs->prs_err = PERR_HKEEPING;
|
||||
} else if (tasks_nocpu_error(parent, cs, trialcs->effective_xcpus)) {
|
||||
invalidate = true;
|
||||
cs->prs_err = PERR_NOCPUS;
|
||||
}
|
||||
trialcs->prs_err = PERR_NONE;
|
||||
partition_cpus_change(cs, trialcs, &tmp);
|
||||
|
||||
if (is_remote_partition(cs)) {
|
||||
if (invalidate)
|
||||
remote_partition_disable(cs, &tmp);
|
||||
else
|
||||
remote_cpus_update(cs, trialcs->exclusive_cpus,
|
||||
trialcs->effective_xcpus, &tmp);
|
||||
} else if (invalidate) {
|
||||
update_parent_effective_cpumask(cs, partcmd_invalidate,
|
||||
NULL, &tmp);
|
||||
} else {
|
||||
update_parent_effective_cpumask(cs, partcmd_update,
|
||||
trialcs->effective_xcpus, &tmp);
|
||||
}
|
||||
}
|
||||
spin_lock_irq(&callback_lock);
|
||||
cpumask_copy(cs->exclusive_cpus, trialcs->exclusive_cpus);
|
||||
cpumask_copy(cs->effective_xcpus, trialcs->effective_xcpus);
|
||||
|
||||
Reference in New Issue
Block a user