Re: [PATCH 2.6.32-rc6] workqueue: fix race condition in schedule_on_each_cpu()

From: Tejun Heo
Date: Sat Nov 14 2009 - 04:02:39 EST


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
--
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/