aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/vdso32/vdso32.lds.S
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2012-07-04 20:37:11 +0000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-07-11 14:18:40 +1000
commit18ad51dd342a7eb09dbcd059d0b451b616d4dafc (patch)
tree94809605669eb3b5e4e049501958a2fa93ae2de7 /arch/powerpc/kernel/vdso32/vdso32.lds.S
parentpowerpc: Add a symbol for hypervisor trampolines (diff)
downloadlinux-dev-18ad51dd342a7eb09dbcd059d0b451b616d4dafc.tar.xz
linux-dev-18ad51dd342a7eb09dbcd059d0b451b616d4dafc.zip
powerpc: Add VDSO version of getcpu
We have a request for a fast method of getting CPU and NUMA node IDs from userspace. This patch implements a getcpu VDSO function, similar to x86. Ben suggested we use SPRG3 which is userspace readable. SPRG3 can be modified by a KVM guest, so we save the SPRG3 value in the paca and restore it when transitioning from the guest to the host. I have a glibc patch that implements sched_getcpu on top of this. Testing on a POWER7: baseline: 538 cycles vdso: 30 cycles Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/vdso32/vdso32.lds.S')
-rw-r--r--arch/powerpc/kernel/vdso32/vdso32.lds.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/vdso32/vdso32.lds.S b/arch/powerpc/kernel/vdso32/vdso32.lds.S
index 0546bcd49cd0..43200ba2e570 100644
--- a/arch/powerpc/kernel/vdso32/vdso32.lds.S
+++ b/arch/powerpc/kernel/vdso32/vdso32.lds.S
@@ -147,6 +147,9 @@ VERSION
__kernel_sync_dicache_p5;
__kernel_sigtramp32;
__kernel_sigtramp_rt32;
+#ifdef CONFIG_PPC64
+ __kernel_getcpu;
+#endif
local: *;
};