Re: [PATCH 04/11] cpuset: update cs->real_{cpus,mems}_allowed whenconfig changes

From: Tejun Heo
Date: Wed Aug 21 2013 - 09:39:18 EST


On Wed, Aug 21, 2013 at 05:59:32PM +0800, Li Zefan wrote:
...
> + cpuset_for_each_descendant_pre(cp, pos_css, cs) {
> + struct cpuset *parent = parent_cs(cs);
> + struct cpumask *new_cpus = trialcs->real_cpus_allowed;
> +
> + cpumask_and(new_cpus, cp->cpus_allowed,
> + parent->real_cpus_allowed);
> +
> + /*
> + * Skip the whole subtree if the cpumask is not changed, unless
> + * it's empty, and in this case we need to update tasks to take
> + * on an ancestor's cpumask.

Something like the following would be clearer?

"Skip the whole subtree if the cpumask remains the same and isn't
empty. If empty, we need..."

> @@ -931,7 +941,6 @@ static int update_cpumask(struct cpuset *cs, struct cpuset *trialcs,
> {
> struct ptr_heap heap;
> int retval;
> - int is_load_balanced;
>
> /* top_cpuset.cpus_allowed tracks cpu_online_mask; it's read-only */
> if (cs == &top_cpuset)
> @@ -966,17 +975,15 @@ static int update_cpumask(struct cpuset *cs, struct cpuset *trialcs,
> if (retval)
> return retval;
>
> - is_load_balanced = is_sched_load_balance(trialcs);
> -
> mutex_lock(&callback_mutex);
> cpumask_copy(cs->cpus_allowed, trialcs->cpus_allowed);
> mutex_unlock(&callback_mutex);
>
> - update_tasks_cpumask_hier(cs, true, &heap);
> + update_cpumasks_hier(cs, trialcs, &heap);
>
> heap_free(&heap);
>
> - if (is_load_balanced)
> + if (is_sched_load_balance(cs))
> rebuild_sched_domains_locked();

Hmmm... Maybe the above change needs some explanation in the patch
description?

Ooh and @update_root params are gone. Maybe nice to note that in the
description too?

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/