On 06/23, Oleg Nesterov wrote: > > > It would be nice to remove stop_cpus_mutex, it actually protects > stop_cpus_work... Then probably stop_two_cpus() can just use > stop_cpus(). We could simply make stop_cpus_mutex per-cpu too, > but this doesn't look nice.
IOW. Suppose we add ->work_mutex into struct cpu_stopper. Btw, I think we should move all per-cpu variables there... Now, lock_stop_cpus_works(cpumask) { for_each_cpu(cpu, cpumask) mutex_lock(per_cpu(cpu_stopper_task, cpu).work_mutex); } unlock_stop_cpus_works(cpumask) { for_each_cpu(cpu, cpumask) mutex_lock(...); } which should be used instead of stop_cpus_mutex. After this change stop_two_cpus() can just use stop_cpus(). Off-topic. Can't we make __stop_machine() static? The only caller, _cpu_down() can safely call stop_machine(), get_online_cpus() is fine under cpu_hotplug_begin(). Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/