diff options
Diffstat (limited to 'kernel/trace/trace.h')
| -rw-r--r-- | kernel/trace/trace.h | 47 | 
1 files changed, 27 insertions, 20 deletions
| diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index 2825ef2c0b15..d1ce0bec1b3f 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -34,7 +34,6 @@ enum trace_type {  	TRACE_GRAPH_RET,  	TRACE_GRAPH_ENT,  	TRACE_USER_STACK, -	TRACE_HW_BRANCHES,  	TRACE_KMEM_ALLOC,  	TRACE_KMEM_FREE,  	TRACE_BLK, @@ -103,29 +102,17 @@ struct syscall_trace_exit {  	long			ret;  }; -struct kprobe_trace_entry { +struct kprobe_trace_entry_head {  	struct trace_entry	ent;  	unsigned long		ip; -	int			nargs; -	unsigned long		args[];  }; -#define SIZEOF_KPROBE_TRACE_ENTRY(n)			\ -	(offsetof(struct kprobe_trace_entry, args) +	\ -	(sizeof(unsigned long) * (n))) - -struct kretprobe_trace_entry { +struct kretprobe_trace_entry_head {  	struct trace_entry	ent;  	unsigned long		func;  	unsigned long		ret_ip; -	int			nargs; -	unsigned long		args[];  }; -#define SIZEOF_KRETPROBE_TRACE_ENTRY(n)			\ -	(offsetof(struct kretprobe_trace_entry, args) +	\ -	(sizeof(unsigned long) * (n))) -  /*   * trace_flag_type is an enumeration that holds different   * states when a trace occurs. These are: @@ -229,7 +216,6 @@ extern void __ftrace_bad_type(void);  			  TRACE_GRAPH_ENT);		\  		IF_ASSIGN(var, ent, struct ftrace_graph_ret_entry,	\  			  TRACE_GRAPH_RET);		\ -		IF_ASSIGN(var, ent, struct hw_branch_entry, TRACE_HW_BRANCHES);\  		IF_ASSIGN(var, ent, struct kmemtrace_alloc_entry,	\  			  TRACE_KMEM_ALLOC);	\  		IF_ASSIGN(var, ent, struct kmemtrace_free_entry,	\ @@ -378,6 +364,9 @@ void trace_function(struct trace_array *tr,  		    unsigned long ip,  		    unsigned long parent_ip,  		    unsigned long flags, int pc); +void trace_default_header(struct seq_file *m); +void print_trace_header(struct seq_file *m, struct trace_iterator *iter); +int trace_empty(struct trace_iterator *iter);  void trace_graph_return(struct ftrace_graph_ret *trace);  int trace_graph_entry(struct ftrace_graph_ent *trace); @@ -467,8 +456,6 @@ extern int trace_selftest_startup_sysprof(struct tracer *trace,  					       struct trace_array *tr);  extern int trace_selftest_startup_branch(struct tracer *trace,  					 struct trace_array *tr); -extern int trace_selftest_startup_hw_branches(struct tracer *trace, -					      struct trace_array *tr);  extern int trace_selftest_startup_ksym(struct tracer *trace,  					 struct trace_array *tr);  #endif /* CONFIG_FTRACE_STARTUP_TEST */ @@ -491,9 +478,29 @@ extern int trace_clock_id;  /* Standard output formatting function used for function return traces */  #ifdef CONFIG_FUNCTION_GRAPH_TRACER -extern enum print_line_t print_graph_function(struct trace_iterator *iter); + +/* Flag options */ +#define TRACE_GRAPH_PRINT_OVERRUN       0x1 +#define TRACE_GRAPH_PRINT_CPU           0x2 +#define TRACE_GRAPH_PRINT_OVERHEAD      0x4 +#define TRACE_GRAPH_PRINT_PROC          0x8 +#define TRACE_GRAPH_PRINT_DURATION      0x10 +#define TRACE_GRAPH_PRINT_ABS_TIME      0x20 + +extern enum print_line_t +print_graph_function_flags(struct trace_iterator *iter, u32 flags); +extern void print_graph_headers_flags(struct seq_file *s, u32 flags);  extern enum print_line_t  trace_print_graph_duration(unsigned long long duration, struct trace_seq *s); +extern void graph_trace_open(struct trace_iterator *iter); +extern void graph_trace_close(struct trace_iterator *iter); +extern int __trace_graph_entry(struct trace_array *tr, +			       struct ftrace_graph_ent *trace, +			       unsigned long flags, int pc); +extern void __trace_graph_return(struct trace_array *tr, +				 struct ftrace_graph_ret *trace, +				 unsigned long flags, int pc); +  #ifdef CONFIG_DYNAMIC_FTRACE  /* TODO: make this variable */ @@ -524,7 +531,7 @@ static inline int ftrace_graph_addr(unsigned long addr)  #endif /* CONFIG_DYNAMIC_FTRACE */  #else /* CONFIG_FUNCTION_GRAPH_TRACER */  static inline enum print_line_t -print_graph_function(struct trace_iterator *iter) +print_graph_function_flags(struct trace_iterator *iter, u32 flags)  {  	return TRACE_TYPE_UNHANDLED;  } |