Commit 1d77822e authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo

perf tool: Add hpp interface to enable/disable hpp column

Adding perf_hpp__column_enable function to enable/disable hists column
and removing diff command specific stuff 'need_pair and
show_displacement' from hpp code.

The diff command now enables/disables columns separately according to
the user arguments. This will be helpful in future patches where more
columns are added into diff output.
Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1349354994-17853-6-git-send-email-namhyung@kernel.orgSigned-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 41724e4c
...@@ -256,6 +256,21 @@ static const struct option options[] = { ...@@ -256,6 +256,21 @@ static const struct option options[] = {
OPT_END() OPT_END()
}; };
static void ui_init(void)
{
perf_hpp__init();
/* No overhead column. */
perf_hpp__column_enable(PERF_HPP__OVERHEAD, false);
/* Display baseline/delta/displacement columns. */
perf_hpp__column_enable(PERF_HPP__BASELINE, true);
perf_hpp__column_enable(PERF_HPP__DELTA, true);
if (show_displacement)
perf_hpp__column_enable(PERF_HPP__DISPL, true);
}
int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused) int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused)
{ {
sort_order = diff__default_sort_order; sort_order = diff__default_sort_order;
...@@ -278,7 +293,8 @@ int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused) ...@@ -278,7 +293,8 @@ int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused)
if (symbol__init() < 0) if (symbol__init() < 0)
return -1; return -1;
perf_hpp__init(true, show_displacement); ui_init();
setup_sorting(diff_usage, options); setup_sorting(diff_usage, options);
setup_pager(); setup_pager();
......
...@@ -691,7 +691,7 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused) ...@@ -691,7 +691,7 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused)
setup_browser(true); setup_browser(true);
else { else {
use_browser = 0; use_browser = 0;
perf_hpp__init(false, false); perf_hpp__init();
} }
setup_sorting(report_usage, options); setup_sorting(report_usage, options);
......
...@@ -584,7 +584,7 @@ HPP__COLOR_FN(overhead_guest_us, period_guest_us) ...@@ -584,7 +584,7 @@ HPP__COLOR_FN(overhead_guest_us, period_guest_us)
void hist_browser__init_hpp(void) void hist_browser__init_hpp(void)
{ {
perf_hpp__init(false, false); perf_hpp__init();
perf_hpp__format[PERF_HPP__OVERHEAD].color = perf_hpp__format[PERF_HPP__OVERHEAD].color =
hist_browser__hpp_color_overhead; hist_browser__hpp_color_overhead;
......
...@@ -73,7 +73,7 @@ HPP__COLOR_FN(overhead_guest_us, period_guest_us) ...@@ -73,7 +73,7 @@ HPP__COLOR_FN(overhead_guest_us, period_guest_us)
void perf_gtk__init_hpp(void) void perf_gtk__init_hpp(void)
{ {
perf_hpp__init(false, false); perf_hpp__init();
perf_hpp__format[PERF_HPP__OVERHEAD].color = perf_hpp__format[PERF_HPP__OVERHEAD].color =
perf_gtk__hpp_color_overhead; perf_gtk__hpp_color_overhead;
......
...@@ -302,7 +302,7 @@ struct perf_hpp_fmt perf_hpp__format[] = { ...@@ -302,7 +302,7 @@ struct perf_hpp_fmt perf_hpp__format[] = {
#undef HPP__COLOR_PRINT_FNS #undef HPP__COLOR_PRINT_FNS
#undef HPP__PRINT_FNS #undef HPP__PRINT_FNS
void perf_hpp__init(bool need_pair, bool show_displacement) void perf_hpp__init(void)
{ {
if (symbol_conf.show_cpu_utilization) { if (symbol_conf.show_cpu_utilization) {
perf_hpp__format[PERF_HPP__OVERHEAD_SYS].cond = true; perf_hpp__format[PERF_HPP__OVERHEAD_SYS].cond = true;
...@@ -319,15 +319,12 @@ void perf_hpp__init(bool need_pair, bool show_displacement) ...@@ -319,15 +319,12 @@ void perf_hpp__init(bool need_pair, bool show_displacement)
if (symbol_conf.show_total_period) if (symbol_conf.show_total_period)
perf_hpp__format[PERF_HPP__PERIOD].cond = true; perf_hpp__format[PERF_HPP__PERIOD].cond = true;
}
if (need_pair) { void perf_hpp__column_enable(unsigned col, bool enable)
perf_hpp__format[PERF_HPP__OVERHEAD].cond = false; {
perf_hpp__format[PERF_HPP__BASELINE].cond = true; BUG_ON(col >= PERF_HPP__MAX_INDEX);
perf_hpp__format[PERF_HPP__DELTA].cond = true; perf_hpp__format[col].cond = enable;
if (show_displacement)
perf_hpp__format[PERF_HPP__DISPL].cond = true;
}
} }
static inline void advance_hpp(struct perf_hpp *hpp, int inc) static inline void advance_hpp(struct perf_hpp *hpp, int inc)
......
...@@ -30,7 +30,7 @@ void setup_browser(bool fallback_to_pager) ...@@ -30,7 +30,7 @@ void setup_browser(bool fallback_to_pager)
if (fallback_to_pager) if (fallback_to_pager)
setup_pager(); setup_pager();
perf_hpp__init(false, false); perf_hpp__init();
break; break;
} }
} }
......
...@@ -147,7 +147,8 @@ enum { ...@@ -147,7 +147,8 @@ enum {
PERF_HPP__MAX_INDEX PERF_HPP__MAX_INDEX
}; };
void perf_hpp__init(bool need_pair, bool show_displacement); void perf_hpp__init(void);
void perf_hpp__column_enable(unsigned col, bool enable);
int hist_entry__period_snprintf(struct perf_hpp *hpp, struct hist_entry *he, int hist_entry__period_snprintf(struct perf_hpp *hpp, struct hist_entry *he,
bool color); bool color);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment