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:
parent
ae30cc05be
commit
0c0c52306f
@ -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 @@
|
|||||||
#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)
|
||||||
|
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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 */
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user