mirror of
https://github.com/fail0verflow/switch-linux.git
synced 2025-05-04 02:34:21 -04:00
tracing: move utility functions from ftrace.h to kernel.h
Make common utility functions such as trace_printk() and tracing_start()/tracing_stop() generally available to kernel code. Cc: Steven Rostedt <srostedt@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
5e1607a00b
commit
526211bc58
2 changed files with 60 additions and 56 deletions
|
@ -318,62 +318,6 @@ static inline void __ftrace_enabled_restore(int enabled)
|
||||||
# define trace_preempt_off(a0, a1) do { } while (0)
|
# define trace_preempt_off(a0, a1) do { } while (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_TRACING
|
|
||||||
extern int ftrace_dump_on_oops;
|
|
||||||
|
|
||||||
extern void tracing_start(void);
|
|
||||||
extern void tracing_stop(void);
|
|
||||||
extern void ftrace_off_permanent(void);
|
|
||||||
|
|
||||||
extern void
|
|
||||||
ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* trace_printk - printf formatting in the ftrace buffer
|
|
||||||
* @fmt: the printf format for printing
|
|
||||||
*
|
|
||||||
* Note: __trace_printk is an internal function for trace_printk and
|
|
||||||
* the @ip is passed in via the trace_printk macro.
|
|
||||||
*
|
|
||||||
* This function allows a kernel developer to debug fast path sections
|
|
||||||
* that printk is not appropriate for. By scattering in various
|
|
||||||
* printk like tracing in the code, a developer can quickly see
|
|
||||||
* where problems are occurring.
|
|
||||||
*
|
|
||||||
* This is intended as a debugging tool for the developer only.
|
|
||||||
* Please refrain from leaving trace_printks scattered around in
|
|
||||||
* your code.
|
|
||||||
*/
|
|
||||||
# define trace_printk(fmt...) __trace_printk(_THIS_IP_, fmt)
|
|
||||||
extern int
|
|
||||||
__trace_printk(unsigned long ip, const char *fmt, ...)
|
|
||||||
__attribute__ ((format (printf, 2, 3)));
|
|
||||||
# define ftrace_vprintk(fmt, ap) __trace_printk(_THIS_IP_, fmt, ap)
|
|
||||||
extern int
|
|
||||||
__ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap);
|
|
||||||
extern void ftrace_dump(void);
|
|
||||||
#else
|
|
||||||
static inline void
|
|
||||||
ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3) { }
|
|
||||||
static inline int
|
|
||||||
trace_printk(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
|
|
||||||
|
|
||||||
static inline void tracing_start(void) { }
|
|
||||||
static inline void tracing_stop(void) { }
|
|
||||||
static inline void ftrace_off_permanent(void) { }
|
|
||||||
static inline int
|
|
||||||
trace_printk(const char *fmt, ...)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
static inline int
|
|
||||||
ftrace_vprintk(const char *fmt, va_list ap)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
static inline void ftrace_dump(void) { }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_FTRACE_MCOUNT_RECORD
|
#ifdef CONFIG_FTRACE_MCOUNT_RECORD
|
||||||
extern void ftrace_init(void);
|
extern void ftrace_init(void);
|
||||||
extern void ftrace_init_module(struct module *mod,
|
extern void ftrace_init_module(struct module *mod,
|
||||||
|
@ -542,6 +486,8 @@ static inline int test_tsk_trace_graph(struct task_struct *tsk)
|
||||||
return tsk->trace & TSK_TRACE_FL_GRAPH;
|
return tsk->trace & TSK_TRACE_FL_GRAPH;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern int ftrace_dump_on_oops;
|
||||||
|
|
||||||
#endif /* CONFIG_TRACING */
|
#endif /* CONFIG_TRACING */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -367,6 +367,64 @@ static inline char *pack_hex_byte(char *buf, u8 byte)
|
||||||
({ if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); 0; })
|
({ if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); 0; })
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* General tracing related utility functions - trace_printk(),
|
||||||
|
* tracing_start()/tracing_stop:
|
||||||
|
*/
|
||||||
|
#ifdef CONFIG_TRACING
|
||||||
|
extern void tracing_start(void);
|
||||||
|
extern void tracing_stop(void);
|
||||||
|
extern void ftrace_off_permanent(void);
|
||||||
|
|
||||||
|
extern void
|
||||||
|
ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* trace_printk - printf formatting in the ftrace buffer
|
||||||
|
* @fmt: the printf format for printing
|
||||||
|
*
|
||||||
|
* Note: __trace_printk is an internal function for trace_printk and
|
||||||
|
* the @ip is passed in via the trace_printk macro.
|
||||||
|
*
|
||||||
|
* This function allows a kernel developer to debug fast path sections
|
||||||
|
* that printk is not appropriate for. By scattering in various
|
||||||
|
* printk like tracing in the code, a developer can quickly see
|
||||||
|
* where problems are occurring.
|
||||||
|
*
|
||||||
|
* This is intended as a debugging tool for the developer only.
|
||||||
|
* Please refrain from leaving trace_printks scattered around in
|
||||||
|
* your code.
|
||||||
|
*/
|
||||||
|
# define trace_printk(fmt...) __trace_printk(_THIS_IP_, fmt)
|
||||||
|
extern int
|
||||||
|
__trace_printk(unsigned long ip, const char *fmt, ...)
|
||||||
|
__attribute__ ((format (printf, 2, 3)));
|
||||||
|
# define ftrace_vprintk(fmt, ap) __trace_printk(_THIS_IP_, fmt, ap)
|
||||||
|
extern int
|
||||||
|
__ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap);
|
||||||
|
extern void ftrace_dump(void);
|
||||||
|
#else
|
||||||
|
static inline void
|
||||||
|
ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3) { }
|
||||||
|
static inline int
|
||||||
|
trace_printk(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
|
||||||
|
|
||||||
|
static inline void tracing_start(void) { }
|
||||||
|
static inline void tracing_stop(void) { }
|
||||||
|
static inline void ftrace_off_permanent(void) { }
|
||||||
|
static inline int
|
||||||
|
trace_printk(const char *fmt, ...)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
static inline int
|
||||||
|
ftrace_vprintk(const char *fmt, va_list ap)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
static inline void ftrace_dump(void) { }
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Display an IP address in readable format.
|
* Display an IP address in readable format.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Reference in a new issue