arm64: ftrace: Add dynamic ftrace support
This patch allows "dynamic ftrace" if CONFIG_DYNAMIC_FTRACE is enabled. Here we can turn on and off tracing dynamically per-function base. On arm64, this is done by patching single branch instruction to _mcount() inserted by gcc -pg option. The branch is replaced to NOP initially at kernel start up, and later on, NOP to branch to ftrace_caller() when enabled or branch to NOP when disabled. Please note that ftrace_caller() is a counterpart of _mcount() in case of 'static' ftrace. More details on architecture specific requirements are described in Documentation/trace/ftrace-design.txt. Change-Id: I55b7a75c4e123dc4de9b904ff2689717d7df14ab Acked-by:Will Deacon <will.deacon@arm.com> Signed-off-by:
AKASHI Takahiro <takahiro.akashi@linaro.org> Signed-off-by:
Will Deacon <will.deacon@arm.com> Git-commit: bd7d38dbdf356e75eb3b1699158c9b8021fd6784 Git-repo: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git [pratikp@codeaurora.org: fix compile error in arch/arm64/ftrace.c: ftrace_dyn_arch_init by changing the function argument from void to void *data] Signed-off-by:
Pratik Patel <pratikp@codeaurora.org>
Loading
Please register or sign in to comment