summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/vdso.h
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2012-07-04 22:37:11 +0200
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-07-11 06:18:40 +0200
commit18ad51dd342a7eb09dbcd059d0b451b616d4dafc (patch)
tree94809605669eb3b5e4e049501958a2fa93ae2de7 /arch/powerpc/include/asm/vdso.h
parentpowerpc: Add a symbol for hypervisor trampolines (diff)
downloadlinux-18ad51dd342a7eb09dbcd059d0b451b616d4dafc.tar.xz
linux-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/include/asm/vdso.h')
-rw-r--r--arch/powerpc/include/asm/vdso.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/vdso.h b/arch/powerpc/include/asm/vdso.h
index dc0419b66f17..50f261bc3e95 100644
--- a/arch/powerpc/include/asm/vdso.h
+++ b/arch/powerpc/include/asm/vdso.h
@@ -22,6 +22,8 @@ extern unsigned long vdso64_rt_sigtramp;
extern unsigned long vdso32_sigtramp;
extern unsigned long vdso32_rt_sigtramp;
+int __cpuinit vdso_getcpu_init(void);
+
#else /* __ASSEMBLY__ */
#ifdef __VDSO64__