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: Michael Ellerman <mpe@ellerman.id.au>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
Michael Ellerman 2018-03-27 15:29:06 +11:00
parent ae30cc05be
commit 0c0c52306f
7 changed files with 2 additions and 59 deletions

View File

@ -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

View File

@ -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)
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)

View File

@ -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)
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

View File

@ -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)
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)

View File

@ -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)
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 */

View File

@ -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:
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)

View File

@ -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)
_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)