linux/arch/powerpc
Anton Blanchard f5f0307f42 powerpc: Improve scheduling of system call entry instructions
After looking at our system call path, Mary Brown suggested that we
should put all mfspr SRR* instructions before any mtspr SRR*.

To test this I used a very simple null syscall (actually getppid)
testcase at http://ozlabs.org/~anton/junkcode/null_syscall.c

I tested with the following changes against the pseries_defconfig:

CONFIG_VIRT_CPU_ACCOUNTING=n
CONFIG_AUDIT=n

to remove the overhead of virtual CPU accounting and syscall
auditing.

POWER6:
baseline:       mean = 757.2 cycles       sd = 2.108
modified:       mean = 759.1 cycles       sd = 2.020

POWER7:
baseline:       mean = 411.4 cycles       sd = 0.138
modified:       mean = 404.1 cycles       sd = 0.109

So we have 1.77% improvement on POWER7 which looks significant. The
POWER6 suggest a 0.25% slowdown, but the results are within 1
standard deviation and may be in the noise.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2011-05-19 14:30:42 +10:00
..
boot powerpc: Use the deterministic mode of ar 2011-05-19 14:30:40 +10:00
configs powerpc/pseries: Enable iSCSI support for a number of cards 2011-05-19 14:30:41 +10:00
include/asm powerpc: Simplify 4k/64k copy_page logic 2011-05-19 14:30:42 +10:00
kernel powerpc: Improve scheduling of system call entry instructions 2011-05-19 14:30:42 +10:00
kvm powerpc: Always use SPRN_SPRG_HSCRATCH0 when running in HV mode 2011-04-20 11:03:23 +10:00
lib powerpc: Simplify 4k/64k copy_page logic 2011-05-19 14:30:42 +10:00
math-emu powerpc/85xx: Fix SPE float to integer conversion failure 2011-03-15 13:48:15 -05:00
mm powerpc: Fix compile with icwsx support 2011-05-06 13:18:34 +10:00
oprofile Fix common misspellings 2011-03-31 11:26:23 -03:00
platforms powerpc: Ensure dtl buffers do not cross 4k boundary 2011-05-19 14:30:41 +10:00
sysdev powerpc: Add WSP platform 2011-05-06 13:32:35 +10:00
xmon powerpc: Convert old cpumask API into new one 2011-05-04 15:22:59 +10:00
Kconfig powerpc/boot: Add an ePAPR compliant boot wrapper 2011-04-20 16:59:21 +10:00
Kconfig.debug powerpc: Add early debug for WSP platforms 2011-05-06 13:32:41 +10:00
Makefile powerpc: Fix typo in uImage target 2010-08-24 15:26:32 +10:00
relocs_check.pl powerpc: Check for unsupported relocs when using CONFIG_RELOCATABLE 2009-09-24 15:31:40 +10:00