[PATCH] Add the vgetcpu vsyscall
This patch adds a vgetcpu vsyscall, which depending on the CPU RDTSCP capability uses either the RDTSCP or CPUID to obtain a CPU and node numbers and pass them to the program. AK: Lots of changes over Vojtech's original code: Better prototype for vgetcpu() It's better to pass the cpu / node numbers as separate arguments to avoid mistakes when going from SMP to NUMA. Also add a fast time stamp based cache using a user supplied argument to speed things more up. Use fast method from Chuck Ebbert to retrieve node/cpu from GDT limit instead of CPUID Made sure RDTSCP init is always executed after node is known. Drop printk Signed-off-by:Vojtech Pavlik <vojtech@suse.cz> Signed-off-by:
Andi Kleen <ak@suse.de>
Showing
- arch/x86_64/kernel/head.S 1 addition, 1 deletionarch/x86_64/kernel/head.S
- arch/x86_64/kernel/time.c 7 additions, 6 deletionsarch/x86_64/kernel/time.c
- arch/x86_64/kernel/vmlinux.lds.S 3 additions, 0 deletionsarch/x86_64/kernel/vmlinux.lds.S
- arch/x86_64/kernel/vsyscall.c 82 additions, 2 deletionsarch/x86_64/kernel/vsyscall.c
- include/asm-x86_64/segment.h 3 additions, 2 deletionsinclude/asm-x86_64/segment.h
- include/asm-x86_64/smp.h 9 additions, 3 deletionsinclude/asm-x86_64/smp.h
- include/asm-x86_64/vsyscall.h 9 additions, 0 deletionsinclude/asm-x86_64/vsyscall.h
- include/linux/getcpu.h 16 additions, 0 deletionsinclude/linux/getcpu.h
include/linux/getcpu.h
0 → 100644
Please register or sign in to comment