Messages in this thread | | | Date | Thu, 24 Aug 2006 16:33:06 +0530 | From | Dipankar Sarma <> | Subject | Re: [RFC][PATCH 2/4] Revert Changes to kernel/workqueue.c |
| |
On Thu, Aug 24, 2006 at 12:51:00PM +0200, Heiko Carstens wrote: > > @@ -510,13 +515,11 @@ int schedule_on_each_cpu(void (*func)(vo > > if (!works) > > return -ENOMEM; > > > > - mutex_lock(&workqueue_mutex); > > for_each_online_cpu(cpu) { > > INIT_WORK(per_cpu_ptr(works, cpu), func, info); > > __queue_work(per_cpu_ptr(keventd_wq->cpu_wq, cpu), > > per_cpu_ptr(works, cpu)); > > } > > - mutex_unlock(&workqueue_mutex); > > flush_workqueue(keventd_wq); > > free_percpu(works); > > return 0; > > Removing this lock without adding a lock/unlock_cpu_hotplug seems wrong, > since this function is walking the cpu_online_map.
As long as you disable preemption and don't block the critical section should be safe from cpu hotplug. There is no need to lock/unlock cpu hotplug.
Thanks Dipankar - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |