ftrace: Expose ftrace_hash_empty and ftrace_lookup_ip
It will be used when checking graph filter hashes later. Link: http://lkml.kernel.org/r/20170120024447.26097-2-namhyung@kernel.org Signed-off-by: Namhyung Kim <namhyung@kernel.org> [ Moved ftrace_hash dec and functions outside of FUNCTION_GRAPH define ] Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
		
							parent
							
								
									3e278c0dc1
								
							
						
					
					
						commit
						4046bf023b
					
				| @ -1110,13 +1110,6 @@ struct ftrace_func_entry { | |||||||
| 	unsigned long ip; | 	unsigned long ip; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| struct ftrace_hash { |  | ||||||
| 	unsigned long		size_bits; |  | ||||||
| 	struct hlist_head	*buckets; |  | ||||||
| 	unsigned long		count; |  | ||||||
| 	struct rcu_head		rcu; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| /*
 | /*
 | ||||||
|  * We make these constant because no one should touch them, |  * We make these constant because no one should touch them, | ||||||
|  * but they are used as the default "empty hash", to avoid allocating |  * but they are used as the default "empty hash", to avoid allocating | ||||||
| @ -1192,12 +1185,7 @@ struct ftrace_page { | |||||||
| static struct ftrace_page	*ftrace_pages_start; | static struct ftrace_page	*ftrace_pages_start; | ||||||
| static struct ftrace_page	*ftrace_pages; | static struct ftrace_page	*ftrace_pages; | ||||||
| 
 | 
 | ||||||
| static bool __always_inline ftrace_hash_empty(struct ftrace_hash *hash) | struct ftrace_func_entry * | ||||||
| { |  | ||||||
| 	return !hash || !hash->count; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| static struct ftrace_func_entry * |  | ||||||
| ftrace_lookup_ip(struct ftrace_hash *hash, unsigned long ip) | ftrace_lookup_ip(struct ftrace_hash *hash, unsigned long ip) | ||||||
| { | { | ||||||
| 	unsigned long key; | 	unsigned long key; | ||||||
|  | |||||||
| @ -753,6 +753,21 @@ enum print_line_t print_trace_line(struct trace_iterator *iter); | |||||||
| 
 | 
 | ||||||
| extern char trace_find_mark(unsigned long long duration); | extern char trace_find_mark(unsigned long long duration); | ||||||
| 
 | 
 | ||||||
|  | struct ftrace_hash { | ||||||
|  | 	unsigned long		size_bits; | ||||||
|  | 	struct hlist_head	*buckets; | ||||||
|  | 	unsigned long		count; | ||||||
|  | 	struct rcu_head		rcu; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | struct ftrace_func_entry * | ||||||
|  | ftrace_lookup_ip(struct ftrace_hash *hash, unsigned long ip); | ||||||
|  | 
 | ||||||
|  | static bool __always_inline ftrace_hash_empty(struct ftrace_hash *hash) | ||||||
|  | { | ||||||
|  | 	return !hash || !hash->count; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| /* Standard output formatting function used for function return traces */ | /* Standard output formatting function used for function return traces */ | ||||||
| #ifdef CONFIG_FUNCTION_GRAPH_TRACER | #ifdef CONFIG_FUNCTION_GRAPH_TRACER | ||||||
| 
 | 
 | ||||||
| @ -787,7 +802,6 @@ extern void __trace_graph_return(struct trace_array *tr, | |||||||
| 				 struct ftrace_graph_ret *trace, | 				 struct ftrace_graph_ret *trace, | ||||||
| 				 unsigned long flags, int pc); | 				 unsigned long flags, int pc); | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| #ifdef CONFIG_DYNAMIC_FTRACE | #ifdef CONFIG_DYNAMIC_FTRACE | ||||||
| /* TODO: make this variable */ | /* TODO: make this variable */ | ||||||
| #define FTRACE_GRAPH_MAX_FUNCS		32 | #define FTRACE_GRAPH_MAX_FUNCS		32 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user