x86, percpu: Optimize this_cpu_ptr
authorBrian Gerst <brgerst@gmail.com>
Thu, 9 Sep 2010 16:17:26 +0000 (18:17 +0200)
committerTejun Heo <tj@kernel.org>
Fri, 10 Sep 2010 08:56:47 +0000 (10:56 +0200)
commitdb7829c6cc32f3c0c9a324118d743acb1abff081
treedd40c271aeda63843819072c753af74fefc1413c
parentfc1481a956181d0360d3eb129965302489895a1b
x86, percpu: Optimize this_cpu_ptr

Allow arches to implement __this_cpu_ptr, and provide an x86 version.

Before:
movq $foo, %rax
movq %gs:this_cpu_off, %rdx
addq %rdx, %rax

After:
movq $foo, %rax
addq %gs:this_cpu_off, %rax

The benefit is doing it in one less instruction and not clobbering
a temporary register.

tj: * Beefed up the comment a bit and renamed in-macro temp variable
      to match neighboring macros.

    * Folded fix for const pointer case found in linux-next.

    * Fixed sparse notation.

Signed-off-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
arch/x86/include/asm/percpu.h
include/asm-generic/percpu.h