On Tue, 23 Feb 2010, Miao Xie wrote: > >> /* > >> @@ -1391,11 +1393,10 @@ static void cpuset_attach(struct cgroup_subsys *ss, struct cgroup *cont, > >> > >> if (cs == &top_cpuset) { > >> cpumask_copy(cpus_attach, cpu_possible_mask); > >> - to = node_possible_map; > >> } else { > >> guarantee_online_cpus(cs, cpus_attach); > >> - guarantee_online_mems(cs, &to); > >> } > >> + guarantee_online_mems(cs, &to); > >> > >> /* do per-task migration stuff possibly for each in the threadgroup */ > >> cpuset_attach_task(tsk, &to, cs); > > > > Do we need to set cpus_attach to cpu_possible_mask? Why won't > > cpu_active_mask suffice? > > If we set cpus_attach to cpu_possible_mask, we needn't do anything for tasks in the top_cpuset when > doing cpu hotplug. If not, we will update cpus_allowed of all tasks in the top_cpuset. > Cpu hotplug sets top_cpuset's cpus_allowed to cpu_active_mask by default, regardless of what was onlined or offlined. cpus_attach in the context of your patch (in cpuset_attach()) passes cpu_possible_mask to set_cpus_allowed_ptr() if the task is being attached to top_cpuset, my question was why don't we pass cpu_active_mask instead? In other words, I think we should do cpumask_copy(cpus_attach, cpu_active_mask); when attached to top_cpuset like my patch did. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>