Lines Matching defs:trialcs
1448 * @trialcs: The trial cpuset containing the proposed new configuration
1455 static int compute_trialcs_excpus(struct cpuset *trialcs, struct cpuset *cs)
1457 struct cpuset *parent = parent_cs(trialcs);
1458 struct cpumask *excpus = trialcs->effective_xcpus;
1460 /* trialcs is member, cpuset.cpus has no impact to excpus */
1462 cpumask_and(excpus, trialcs->exclusive_cpus,
1465 cpumask_and(excpus, user_xcpus(trialcs), parent->effective_xcpus);
2321 * @trialcs: The trial cpuset containing proposed configuration changes
2328 static enum prs_errcode validate_partition(struct cpuset *cs, struct cpuset *trialcs)
2332 if (cs_is_member(trialcs))
2335 if (cpumask_empty(trialcs->effective_xcpus))
2338 if (prstate_housekeeping_conflict(trialcs->partition_root_state,
2339 trialcs->effective_xcpus))
2342 if (tasks_nocpu_error(parent, cs, trialcs->effective_xcpus))
2351 * @trialcs: The trial cpuset containing proposed configuration changes
2357 static void partition_cpus_change(struct cpuset *cs, struct cpuset *trialcs,
2365 prs_err = validate_partition(cs, trialcs);
2367 trialcs->prs_err = cs->prs_err = prs_err;
2370 if (trialcs->prs_err)
2373 remote_cpus_update(cs, trialcs->exclusive_cpus,
2374 trialcs->effective_xcpus, tmp);
2376 if (trialcs->prs_err)
2381 trialcs->effective_xcpus, tmp);
2388 * @trialcs: trial cpuset
2391 static int update_cpumask(struct cpuset *cs, struct cpuset *trialcs,
2399 retval = parse_cpuset_cpulist(buf, trialcs->cpus_allowed);
2404 if (cpumask_equal(cs->cpus_allowed, trialcs->cpus_allowed))
2407 compute_trialcs_excpus(trialcs, cs);
2408 trialcs->prs_err = PERR_NONE;
2410 retval = validate_change(cs, trialcs);
2421 force = !cpumask_equal(cs->effective_xcpus, trialcs->effective_xcpus);
2423 partition_cpus_change(cs, trialcs, &tmp);
2426 cpumask_copy(cs->cpus_allowed, trialcs->cpus_allowed);
2427 cpumask_copy(cs->effective_xcpus, trialcs->effective_xcpus);
2446 * @trialcs: trial cpuset
2451 static int update_exclusive_cpumask(struct cpuset *cs, struct cpuset *trialcs,
2459 retval = parse_cpuset_cpulist(buf, trialcs->exclusive_cpus);
2464 if (cpumask_equal(cs->exclusive_cpus, trialcs->exclusive_cpus))
2471 if (compute_trialcs_excpus(trialcs, cs))
2478 force = !cpumask_equal(cs->effective_xcpus, trialcs->effective_xcpus);
2480 retval = validate_change(cs, trialcs);
2487 trialcs->prs_err = PERR_NONE;
2488 partition_cpus_change(cs, trialcs, &tmp);
2491 cpumask_copy(cs->exclusive_cpus, trialcs->exclusive_cpus);
2492 cpumask_copy(cs->effective_xcpus, trialcs->effective_xcpus);
2738 static int update_nodemask(struct cpuset *cs, struct cpuset *trialcs,
2747 retval = nodelist_parse(buf, trialcs->mems_allowed);
2751 if (!nodes_subset(trialcs->mems_allowed,
2756 if (nodes_equal(cs->mems_allowed, trialcs->mems_allowed))
2759 retval = validate_change(cs, trialcs);
2763 check_insane_mems_config(&trialcs->mems_allowed);
2766 cs->mems_allowed = trialcs->mems_allowed;
2769 /* use trialcs->mems_allowed as a temp variable */
2770 update_nodemasks_hier(cs, &trialcs->mems_allowed);
2797 struct cpuset *trialcs;
2802 trialcs = dup_or_alloc_cpuset(cs);
2803 if (!trialcs)
2807 set_bit(bit, &trialcs->flags);
2809 clear_bit(bit, &trialcs->flags);
2811 err = validate_change(cs, trialcs);
2816 is_sched_load_balance(trialcs));
2818 spread_flag_changed = ((is_spread_slab(cs) != is_spread_slab(trialcs))
2819 || (is_spread_page(cs) != is_spread_page(trialcs)));
2822 cs->flags = trialcs->flags;
2825 if (!cpumask_empty(trialcs->cpus_allowed) && balance_flag_changed) {
2835 free_cpuset(trialcs);
3220 struct cpuset *trialcs;
3232 trialcs = dup_or_alloc_cpuset(cs);
3233 if (!trialcs) {
3240 retval = update_cpumask(cs, trialcs, buf);
3243 retval = update_exclusive_cpumask(cs, trialcs, buf);
3246 retval = update_nodemask(cs, trialcs, buf);
3253 free_cpuset(trialcs);