linux_dsm_epyc7002/arch
Anton Blanchard 35000870fc powerpc: Optimise enable_kernel_altivec
Add two optimisations to enable_kernel_altivec:

- enable_kernel_altivec has already determined if we need to
save the previous task's state but we call giveup_altivec
in both cases, requiring an extra branch in giveup_altivec. Create
giveup_altivec_notask which only turns on the VMX bit in the
MSR.

- We write the VMX MSR bit each time we call enable_kernel_altivec
even it was already set. Check the bit and branch out if we have
already set it. The classic case for this is vectored IO
where we have to copy multiple buffers to or from userspace.

The following testcase was used to confirm this patch improves
performance:

http://ozlabs.org/~anton/junkcode/copy_to_user.c

Since the current breakpoint for using VMX in copy_tofrom_user is
4096 bytes, I'm using buffers of 4096 + 1 cacheline (4224) bytes.
A benchmark of 16 entry readvs (-s 16):

time copy_to_user -l 4224 -s 16 -i 1000000

completes 5.2% faster on a POWER7 PS700.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-04-30 15:37:17 +10:00
..
alpha
arm ARM: SoC fixes for 3.4-rc 2012-04-28 09:28:43 -07:00
avr32
blackfin blackfin: fix ifdef fustercluck in mach-bf538/boards/ezkit.c 2012-04-26 14:46:51 -04:00
c6x
cris
frv
h8300
hexagon hexagon: add missing cpu.h include 2012-04-23 12:57:24 -05:00
ia64 kill mm argument of vm_munmap() 2012-04-21 01:58:20 -04:00
m32r
m68k m68knommu: make sure 2nd FEC eth interface pins are enabled on 5275 ColdFire 2012-04-17 17:06:34 +10:00
microblaze
mips
mn10300
openrisc
parisc
powerpc powerpc: Optimise enable_kernel_altivec 2012-04-30 15:37:17 +10:00
s390
score
sh sh: Fix up tracepoint build fallout from static key introduction. 2012-04-27 11:12:38 +09:30
sparc sparc32,leon: add notify_cpu_starting() 2012-04-21 16:35:06 -04:00
tile arch/tile: fix a couple of functions that should be __init 2012-04-25 12:45:26 -04:00
um
unicore32
x86 Very good bug-fixes: 2012-04-27 19:56:22 -07:00
xtensa xtensa: fix build fail on undefined ack_bad_irq 2012-04-26 18:35:32 -04:00
.gitignore
Kconfig