summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/disassemble.h
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2015-10-29 11:43:55 +1100
committerMichael Ellerman <mpe@ellerman.id.au>2015-12-01 13:52:24 +1100
commit152d523e6307c7152f9986a542f873b5c5863937 (patch)
treede3b7ec6c667e368f922f2cc17bf7c1806ac28dd /arch/powerpc/include/asm/disassemble.h
parentaf72ab646a6bee724f190820e8f56497a5b635f0 (diff)
downloadblackbird-obmc-linux-152d523e6307c7152f9986a542f873b5c5863937.tar.gz
blackbird-obmc-linux-152d523e6307c7152f9986a542f873b5c5863937.zip
powerpc: Create context switch helpers save_sprs() and restore_sprs()
Move all our context switch SPR save and restore code into two helpers. We do a few optimisations: - Group all mfsprs and all mtsprs. In many cases an mtspr sets a scoreboarding bit that an mfspr waits on, so the current practise of mfspr A; mtspr A; mfpsr B; mtspr B is the worst scheduling we can do. - SPR writes are slow, so check that the value is changing before writing it. A context switch microbenchmark using yield(): http://ozlabs.org/~anton/junkcode/context_switch2.c ./context_switch2 --test=yield 0 0 shows an improvement of almost 10% on POWER8. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/include/asm/disassemble.h')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud