Messages in this thread | | | Date | Sat, 14 Nov 2009 18:01:52 +0900 | From | Tejun Heo <> | Subject | Re: [PATCH 2.6.32-rc6] workqueue: fix race condition in schedule_on_each_cpu() |
| |
Hello, Oleg.
11/14/2009 12:38 AM, Oleg Nesterov wrote: > A very minor nit, schedule_on_each_cpu() still checks "orig" twice, > perhaps it makes sense to do > > for_each_online_cpu(cpu) { > struct work_struct *work = per_cpu_ptr(works, cpu); > > INIT_WORK(work, func); > > if (likely(cpu != orig)) > schedule_work_on(cpu, work); > else > func(work); > }
The intention was to schedule works on all other cpus first and then execute it on local cpu so that if it takes some time, it doesn't have to go through the latency twice.
Thanks.
-- tejun
| |