
When the function graph tracer is disabled we can skip three additional instructions. So let's just do this. So if function tracing is enabled but function graph tracing is runtime disabled, we get away with a single unconditional branch. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
28 lines
446 B
C
28 lines
446 B
C
#ifndef _ASM_S390_FTRACE_H
|
|
#define _ASM_S390_FTRACE_H
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
extern void _mcount(void);
|
|
extern char ftrace_graph_caller_end;
|
|
|
|
struct dyn_arch_ftrace { };
|
|
|
|
#define MCOUNT_ADDR ((long)_mcount)
|
|
|
|
|
|
static inline unsigned long ftrace_call_adjust(unsigned long addr)
|
|
{
|
|
return addr;
|
|
}
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
#ifdef CONFIG_64BIT
|
|
#define MCOUNT_INSN_SIZE 12
|
|
#else
|
|
#define MCOUNT_INSN_SIZE 22
|
|
#endif
|
|
|
|
#endif /* _ASM_S390_FTRACE_H */
|