mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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
					
				
					 2 changed files with 16 additions and 14 deletions
				
			
		| 
						 | 
					@ -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 a new issue