Re: race condition in schedule_on_each_cpu()

From: weiqi@xxxxxxxxxxxxxx
Date: Thu Jun 06 2013 - 22:25:39 EST


In the previous message,You mentioned:


by the way, I'm wondering about what's the race condition before
which doesn't exist now


Before the commit you originally quoted, the calling thread could be
preempted and migrated to another CPU before get_online_cpus() thus
ending up executing the function twice on the new cpu but skipping the
old one.


does this situation will happen in "Full preemption" config, on 3.0.30-rt50?







ä 2013å06æ07æ 09:34, weiqi@xxxxxxxxxxxxxx åé:
it's preemption mode related ,

on the 3.0.30-rt50, only config kernel with highest preemption level (Fully Preemptible Kernel (RT)) in cpu preemption model
will cause problem

and even i use the "Preemptible Kernel" or "Preemptible Kernel (Low-Latency Desktop)" the problem would not happen..


> I looked through the logs but the only worker depletion related patches which pop up are around CPU hotplugs, so I don't think they apply here. If the problem is relatively easy to reproduce && you can't move onto a newer kernel, I'm afraid bisection probably is the best option. Thanks!



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