On Wed, Aug 14, 2013 at 09:14:34AM -0700, H. Peter Anvin wrote: > Even so, this_rq() uses __get_cpu_var() and takes its address, which > turns into a sequence like: > > leaq __percpu_runqueues(%rip),%rax > addq %gs:this_cpu_off,%rax > > ... which is better than the above but still more heavyweight than it > would be if the pointer was itself a percpu variable. Oh curses, this is because lea can't do segment offsets? So there's no sane way to get addresses of per-cpu variables. Because ideally we'd have something like: lea %gs:__percpu_runqueues,%rax So in this case it makes sense to also store the actual pointer; how unfortunate. -- 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