• Anton Blanchard's avatar
    powerpc: Improve scheduling of system call entry instructions · f5f0307f
    Anton Blanchard authored
    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: default avatarAnton Blanchard <anton@samba.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    f5f0307f
exceptions-64s.S 28.7 KB