diff options
-rw-r--r-- | kernel/trace/ftrace.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 4d90c916b2bb..c7f4a4be05dc 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c | |||
@@ -347,8 +347,10 @@ static int function_stat_cmp(void *p1, void *p2) | |||
347 | static int function_stat_headers(struct seq_file *m) | 347 | static int function_stat_headers(struct seq_file *m) |
348 | { | 348 | { |
349 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER | 349 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER |
350 | seq_printf(m, " Function Hit Time\n" | 350 | seq_printf(m, " Function " |
351 | " -------- --- ----\n"); | 351 | "Hit Time Avg\n" |
352 | " -------- " | ||
353 | "--- ---- ---\n"); | ||
352 | #else | 354 | #else |
353 | seq_printf(m, " Function Hit\n" | 355 | seq_printf(m, " Function Hit\n" |
354 | " -------- ---\n"); | 356 | " -------- ---\n"); |
@@ -361,12 +363,9 @@ static int function_stat_show(struct seq_file *m, void *v) | |||
361 | struct ftrace_profile *rec = v; | 363 | struct ftrace_profile *rec = v; |
362 | char str[KSYM_SYMBOL_LEN]; | 364 | char str[KSYM_SYMBOL_LEN]; |
363 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER | 365 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER |
364 | static struct trace_seq s; | ||
365 | static DEFINE_MUTEX(mutex); | 366 | static DEFINE_MUTEX(mutex); |
366 | 367 | static struct trace_seq s; | |
367 | mutex_lock(&mutex); | 368 | unsigned long long avg; |
368 | trace_seq_init(&s); | ||
369 | trace_print_graph_duration(rec->time, &s); | ||
370 | #endif | 369 | #endif |
371 | 370 | ||
372 | kallsyms_lookup(rec->ip, NULL, NULL, NULL, str); | 371 | kallsyms_lookup(rec->ip, NULL, NULL, NULL, str); |
@@ -374,6 +373,14 @@ static int function_stat_show(struct seq_file *m, void *v) | |||
374 | 373 | ||
375 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER | 374 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER |
376 | seq_printf(m, " "); | 375 | seq_printf(m, " "); |
376 | avg = rec->time; | ||
377 | do_div(avg, rec->counter); | ||
378 | |||
379 | mutex_lock(&mutex); | ||
380 | trace_seq_init(&s); | ||
381 | trace_print_graph_duration(rec->time, &s); | ||
382 | trace_seq_puts(&s, " "); | ||
383 | trace_print_graph_duration(avg, &s); | ||
377 | trace_print_seq(m, &s); | 384 | trace_print_seq(m, &s); |
378 | mutex_unlock(&mutex); | 385 | mutex_unlock(&mutex); |
379 | #endif | 386 | #endif |