Commit 0c0c5230 authored by Michael Ellerman's avatar Michael Ellerman

powerpc: Only support DYNAMIC_FTRACE not static

We've had dynamic ftrace support for over 9 years since Steve first
wrote it, all the distros use dynamic, and static is basically
untested these days, so drop support for static ftrace.
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Acked-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent ae30cc05
...@@ -162,6 +162,7 @@ config PPC ...@@ -162,6 +162,7 @@ config PPC
select BUILDTIME_EXTABLE_SORT select BUILDTIME_EXTABLE_SORT
select CLONE_BACKWARDS select CLONE_BACKWARDS
select DCACHE_WORD_ACCESS if PPC64 && CPU_LITTLE_ENDIAN select DCACHE_WORD_ACCESS if PPC64 && CPU_LITTLE_ENDIAN
select DYNAMIC_FTRACE if FUNCTION_TRACER
select EDAC_ATOMIC_SCRUB select EDAC_ATOMIC_SCRUB
select EDAC_SUPPORT select EDAC_SUPPORT
select GENERIC_ATOMIC64 if PPC32 select GENERIC_ATOMIC64 if PPC32
......
...@@ -48,7 +48,6 @@ ...@@ -48,7 +48,6 @@
#else /* !__ASSEMBLY__ */ #else /* !__ASSEMBLY__ */
extern void _mcount(void); extern void _mcount(void);
#ifdef CONFIG_DYNAMIC_FTRACE
static inline unsigned long ftrace_call_adjust(unsigned long addr) static inline unsigned long ftrace_call_adjust(unsigned long addr)
{ {
/* reloction of mcount call site is the same as the address */ /* reloction of mcount call site is the same as the address */
...@@ -58,13 +57,12 @@ static inline unsigned long ftrace_call_adjust(unsigned long addr) ...@@ -58,13 +57,12 @@ static inline unsigned long ftrace_call_adjust(unsigned long addr)
struct dyn_arch_ftrace { struct dyn_arch_ftrace {
struct module *mod; struct module *mod;
}; };
#endif /* CONFIG_DYNAMIC_FTRACE */
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#ifdef CONFIG_DYNAMIC_FTRACE_WITH_REGS #ifdef CONFIG_DYNAMIC_FTRACE_WITH_REGS
#define ARCH_SUPPORTS_FTRACE_OPS 1 #define ARCH_SUPPORTS_FTRACE_OPS 1
#endif #endif
#endif #endif /* CONFIG_FUNCTION_TRACER */
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
#if defined(CONFIG_FTRACE_SYSCALLS) && defined(PPC64_ELF_ABI_v1) #if defined(CONFIG_FTRACE_SYSCALLS) && defined(PPC64_ELF_ABI_v1)
......
...@@ -662,7 +662,6 @@ int __init ftrace_dyn_arch_init(void) ...@@ -662,7 +662,6 @@ int __init ftrace_dyn_arch_init(void)
#ifdef CONFIG_FUNCTION_GRAPH_TRACER #ifdef CONFIG_FUNCTION_GRAPH_TRACER
#ifdef CONFIG_DYNAMIC_FTRACE
extern void ftrace_graph_call(void); extern void ftrace_graph_call(void);
extern void ftrace_graph_stub(void); extern void ftrace_graph_stub(void);
...@@ -691,7 +690,6 @@ int ftrace_disable_ftrace_graph_caller(void) ...@@ -691,7 +690,6 @@ int ftrace_disable_ftrace_graph_caller(void)
return ftrace_modify_code(ip, old, new); return ftrace_modify_code(ip, old, new);
} }
#endif /* CONFIG_DYNAMIC_FTRACE */
/* /*
* Hook the return address and push it in the stack of return addrs * Hook the return address and push it in the stack of return addrs
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include <asm/ftrace.h> #include <asm/ftrace.h>
#include <asm/export.h> #include <asm/export.h>
#ifdef CONFIG_DYNAMIC_FTRACE
_GLOBAL(mcount) _GLOBAL(mcount)
_GLOBAL(_mcount) _GLOBAL(_mcount)
/* /*
...@@ -47,26 +46,7 @@ _GLOBAL(ftrace_graph_stub) ...@@ -47,26 +46,7 @@ _GLOBAL(ftrace_graph_stub)
MCOUNT_RESTORE_FRAME MCOUNT_RESTORE_FRAME
/* old link register ends up in ctr reg */ /* old link register ends up in ctr reg */
bctr bctr
#else
_GLOBAL(mcount)
_GLOBAL(_mcount)
MCOUNT_SAVE_FRAME
subi r3, r3, MCOUNT_INSN_SIZE
LOAD_REG_ADDR(r5, ftrace_trace_function)
lwz r5,0(r5)
mtctr r5
bctrl
nop
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
b ftrace_graph_caller
#endif
MCOUNT_RESTORE_FRAME
bctr
#endif
EXPORT_SYMBOL(_mcount) EXPORT_SYMBOL(_mcount)
_GLOBAL(ftrace_stub) _GLOBAL(ftrace_stub)
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include <asm/ppc-opcode.h> #include <asm/ppc-opcode.h>
#include <asm/export.h> #include <asm/export.h>
#ifdef CONFIG_DYNAMIC_FTRACE
_GLOBAL(mcount) _GLOBAL(mcount)
_GLOBAL(_mcount) _GLOBAL(_mcount)
EXPORT_SYMBOL(_mcount) EXPORT_SYMBOL(_mcount)
...@@ -23,34 +22,6 @@ EXPORT_SYMBOL(_mcount) ...@@ -23,34 +22,6 @@ EXPORT_SYMBOL(_mcount)
mtlr r0 mtlr r0
bctr bctr
#else /* CONFIG_DYNAMIC_FTRACE */
_GLOBAL_TOC(_mcount)
EXPORT_SYMBOL(_mcount)
/* Taken from output of objdump from lib64/glibc */
mflr r3
ld r11, 0(r1)
stdu r1, -112(r1)
std r3, 128(r1)
ld r4, 16(r11)
subi r3, r3, MCOUNT_INSN_SIZE
LOAD_REG_ADDR(r5,ftrace_trace_function)
ld r5,0(r5)
ld r5,0(r5)
mtctr r5
bctrl
nop
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
b ftrace_graph_caller
#endif
ld r0, 128(r1)
mtlr r0
addi r1, r1, 112
_GLOBAL(ftrace_stub)
blr
#endif /* CONFIG_DYNAMIC_FTRACE */
#ifdef CONFIG_FUNCTION_GRAPH_TRACER #ifdef CONFIG_FUNCTION_GRAPH_TRACER
_GLOBAL(return_to_handler) _GLOBAL(return_to_handler)
/* need to save return values */ /* need to save return values */
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <asm/bug.h> #include <asm/bug.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
#ifdef CONFIG_DYNAMIC_FTRACE
/* /*
* *
* ftrace_caller()/ftrace_regs_caller() is the function that replaces _mcount() * ftrace_caller()/ftrace_regs_caller() is the function that replaces _mcount()
...@@ -311,8 +310,6 @@ livepatch_handler: ...@@ -311,8 +310,6 @@ livepatch_handler:
blr blr
#endif /* CONFIG_LIVEPATCH */ #endif /* CONFIG_LIVEPATCH */
#endif /* CONFIG_DYNAMIC_FTRACE */
#ifdef CONFIG_FUNCTION_GRAPH_TRACER #ifdef CONFIG_FUNCTION_GRAPH_TRACER
_GLOBAL(ftrace_graph_caller) _GLOBAL(ftrace_graph_caller)
stdu r1, -112(r1) stdu r1, -112(r1)
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include <asm/ppc-opcode.h> #include <asm/ppc-opcode.h>
#include <asm/export.h> #include <asm/export.h>
#ifdef CONFIG_DYNAMIC_FTRACE
_GLOBAL_TOC(ftrace_caller) _GLOBAL_TOC(ftrace_caller)
lbz r3, PACA_FTRACE_ENABLED(r13) lbz r3, PACA_FTRACE_ENABLED(r13)
cmpdi r3, 0 cmpdi r3, 0
...@@ -43,7 +42,6 @@ _GLOBAL(ftrace_graph_stub) ...@@ -43,7 +42,6 @@ _GLOBAL(ftrace_graph_stub)
_GLOBAL(ftrace_stub) _GLOBAL(ftrace_stub)
blr blr
#endif /* CONFIG_DYNAMIC_FTRACE */
#ifdef CONFIG_FUNCTION_GRAPH_TRACER #ifdef CONFIG_FUNCTION_GRAPH_TRACER
_GLOBAL(ftrace_graph_caller) _GLOBAL(ftrace_graph_caller)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment