WSL2-Linux-Kernel/arch/powerpc
Anton Blanchard 30d0b36828 powerpc: Move 64bit VDSO to improve context switch performance
On 64bit applications the VDSO is the only thing in segment 0. Since the VDSO
is position independent we can remove the hint and let get_unmapped_area pick
an area. This will mean the vdso will be near other mmaps and will share
an SLB entry:

10000000-10001000 r-xp 00000000 08:06 5778459        /root/context_switch_64
10010000-10011000 r--p 00000000 08:06 5778459        /root/context_switch_64
10011000-10012000 rw-p 00001000 08:06 5778459        /root/context_switch_64
fffa92ae000-fffa92b0000 rw-p 00000000 00:00 0
fffa92b0000-fffa9453000 r-xp 00000000 08:06 4334051  /lib64/power6/libc-2.9.so
fffa9453000-fffa9462000 ---p 001a3000 08:06 4334051  /lib64/power6/libc-2.9.so
fffa9462000-fffa9466000 r--p 001a2000 08:06 4334051  /lib64/power6/libc-2.9.so
fffa9466000-fffa947c000 rw-p 001a6000 08:06 4334051  /lib64/power6/libc-2.9.so
fffa947c000-fffa9480000 rw-p 00000000 00:00 0
fffa9480000-fffa94a8000 r-xp 00000000 08:06 4333852  /lib64/ld-2.9.so
fffa94b3000-fffa94b4000 rw-p 00000000 00:00 0

fffa94b4000-fffa94b7000 r-xp 00000000 00:00 0        [vdso] <----- here I am

fffa94b7000-fffa94b8000 r--p 00027000 08:06 4333852  /lib64/ld-2.9.so
fffa94b8000-fffa94bb000 rw-p 00028000 08:06 4333852  /lib64/ld-2.9.so
fffa94bb000-fffa94bc000 rw-p 00000000 00:00 0
fffe4c10000-fffe4c25000 rw-p 00000000 00:00 0        [stack]

On a microbenchmark that bounces a token between two 64bit processes over pipes
and calls gettimeofday each iteration (to access the VDSO), our context switch
rate goes from 268k to 277k ctx switches/sec (tested on a 4GHz POWER6).

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2009-08-20 10:12:24 +10:00
..
boot powerpc/83xx: Fix PCI IO base address on MPC837xE-RDB boards 2009-07-29 23:18:41 -05:00
configs powerpc: Update defconfigs for embedded 6xx/7xxx, 8xx, 8{3,5,6}xxx 2009-07-29 23:34:01 -05:00
include/asm powerpc: Move 64bit VDSO to improve context switch performance 2009-08-20 10:12:24 +10:00
kernel powerpc: Move 64bit VDSO to improve context switch performance 2009-08-20 10:12:24 +10:00
kvm powerpc: Add configurable -Werror for arch/powerpc 2009-06-16 14:15:45 +10:00
lib powerpc: Add configurable -Werror for arch/powerpc 2009-06-16 14:15:45 +10:00
math-emu powerpc/math-emu: Fix efp dependence 2009-03-11 06:00:08 -05:00
mm powerpc/mm: Fix SMP issue with MMU context handling code 2009-07-29 23:05:43 -05:00
oprofile powerpc: Remove unnecessary semicolons 2009-07-08 13:50:21 +10:00
platforms powerpc/amigaone: Convert amigaone_init() to a machine_device_initcall() 2009-08-20 10:12:21 +10:00
sysdev powerpc/mpic: Fix MPIC_BROKEN_REGREAD on non broken MPICs 2009-08-20 10:12:22 +10:00
xmon powerpc: Add configurable -Werror for arch/powerpc 2009-06-16 14:15:45 +10:00
Kconfig powerpc: Add irqtrace support for 32-bit powerpc 2009-06-26 14:37:27 +10:00
Kconfig.debug powerpc: Add configurable -Werror for arch/powerpc 2009-06-16 14:15:45 +10:00
Makefile powerpc: Move VMX and VSX asm code to vector.S 2009-06-09 16:46:25 +10:00