On Thu, 25 Aug 2011, Peter Zijlstra wrote: > Also, I thought this_cpu thing's were at best locally atomic. If you > make them full blown atomic ops then even __this_cpu ops will have to be > full atomic ops, otherwise: > > > CPU0 CPU(1) > > this_cpu_inc(&foo); preempt_disable(); > __this_cpu_inc(&foo); > preempt_enable(); > > might step on each other's toes. They would both have their own instance of "foo". per cpu atomicity is only one requirement of this_cpu_ops. The other is the ability to relocate accesses relative to the current per cpu area. Full blown atomicity is almost a superset of per cpu atomicity but its only usable if the full atomic instructions can also relocate accesses relative to some base. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html