Browse Source

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>
Namhyung Kim 8 years ago
parent
commit
4046bf023b
2 changed files with 16 additions and 14 deletions
  1. 1 13
      kernel/trace/ftrace.c
  2. 15 1
      kernel/trace/trace.h

+ 1 - 13
kernel/trace/ftrace.c

@@ -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)
-{
-	return !hash || !hash->count;
-}
-
-static struct ftrace_func_entry *
+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;

+ 15 - 1
kernel/trace/trace.h

@@ -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