Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc: Enable jump label support

When looking through some instruction traces I noticed our tracepoint
checks were inline. It turns out we don't have CONFIG_JUMP_LABEL
enabled.

By enabling CONFIG_JUMP_LABEL we replace a load/compare/branch with
a nop at every tracepoint call. For example in do_IRQ:

CONFIG_JUMP_LABEL disabled:
stdx 3,11,9
lwz 0,8(29)
cmpwi 7,0,0
bne- 7,.L124
bl .irq_enter

CONFIG_JUMP_LABEL enabled:
stdx 3,11,9
nop
bl .irq_enter

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

authored by

Anton Blanchard and committed by
Benjamin Herrenschmidt
641bd53a 16aaaff6

+2
+1
arch/powerpc/configs/ppc64_defconfig
··· 16 16 CONFIG_PROFILING=y 17 17 CONFIG_OPROFILE=y 18 18 CONFIG_KPROBES=y 19 + CONFIG_JUMP_LABEL=y 19 20 CONFIG_MODULES=y 20 21 CONFIG_MODULE_UNLOAD=y 21 22 CONFIG_MODVERSIONS=y
+1
arch/powerpc/configs/pseries_defconfig
··· 24 24 CONFIG_PROFILING=y 25 25 CONFIG_OPROFILE=y 26 26 CONFIG_KPROBES=y 27 + CONFIG_JUMP_LABEL=y 27 28 CONFIG_MODULES=y 28 29 CONFIG_MODULE_UNLOAD=y 29 30 CONFIG_MODVERSIONS=y