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: Jiri 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.org Signed-off-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
41724e4cf6
commit
1d77822ea6
@ -256,6 +256,21 @@ static const struct option options[] = {
|
||||
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)
|
||||
{
|
||||
sort_order = diff__default_sort_order;
|
||||
@ -278,7 +293,8 @@ int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused)
|
||||
if (symbol__init() < 0)
|
||||
return -1;
|
||||
|
||||
perf_hpp__init(true, show_displacement);
|
||||
ui_init();
|
||||
|
||||
setup_sorting(diff_usage, options);
|
||||
setup_pager();
|
||||
|
||||
|
@ -691,7 +691,7 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused)
|
||||
setup_browser(true);
|
||||
else {
|
||||
use_browser = 0;
|
||||
perf_hpp__init(false, false);
|
||||
perf_hpp__init();
|
||||
}
|
||||
|
||||
setup_sorting(report_usage, options);
|
||||
|
@ -584,7 +584,7 @@ HPP__COLOR_FN(overhead_guest_us, period_guest_us)
|
||||
|
||||
void hist_browser__init_hpp(void)
|
||||
{
|
||||
perf_hpp__init(false, false);
|
||||
perf_hpp__init();
|
||||
|
||||
perf_hpp__format[PERF_HPP__OVERHEAD].color =
|
||||
hist_browser__hpp_color_overhead;
|
||||
|
@ -73,7 +73,7 @@ HPP__COLOR_FN(overhead_guest_us, period_guest_us)
|
||||
|
||||
void perf_gtk__init_hpp(void)
|
||||
{
|
||||
perf_hpp__init(false, false);
|
||||
perf_hpp__init();
|
||||
|
||||
perf_hpp__format[PERF_HPP__OVERHEAD].color =
|
||||
perf_gtk__hpp_color_overhead;
|
||||
|
@ -302,7 +302,7 @@ struct perf_hpp_fmt perf_hpp__format[] = {
|
||||
#undef HPP__COLOR_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) {
|
||||
perf_hpp__format[PERF_HPP__OVERHEAD_SYS].cond = true;
|
||||
@ -319,15 +319,12 @@ void perf_hpp__init(bool need_pair, bool show_displacement)
|
||||
|
||||
if (symbol_conf.show_total_period)
|
||||
perf_hpp__format[PERF_HPP__PERIOD].cond = true;
|
||||
}
|
||||
|
||||
if (need_pair) {
|
||||
perf_hpp__format[PERF_HPP__OVERHEAD].cond = false;
|
||||
perf_hpp__format[PERF_HPP__BASELINE].cond = true;
|
||||
perf_hpp__format[PERF_HPP__DELTA].cond = true;
|
||||
|
||||
if (show_displacement)
|
||||
perf_hpp__format[PERF_HPP__DISPL].cond = true;
|
||||
}
|
||||
void perf_hpp__column_enable(unsigned col, bool enable)
|
||||
{
|
||||
BUG_ON(col >= PERF_HPP__MAX_INDEX);
|
||||
perf_hpp__format[col].cond = enable;
|
||||
}
|
||||
|
||||
static inline void advance_hpp(struct perf_hpp *hpp, int inc)
|
||||
|
@ -30,7 +30,7 @@ void setup_browser(bool fallback_to_pager)
|
||||
if (fallback_to_pager)
|
||||
setup_pager();
|
||||
|
||||
perf_hpp__init(false, false);
|
||||
perf_hpp__init();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -147,7 +147,8 @@ enum {
|
||||
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,
|
||||
bool color);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user