diff options
| author | Jiri Olsa <jolsa@redhat.com> | 2012-10-04 21:49:39 +0900 | 
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-10-04 13:30:27 -0300 | 
| commit | 1d77822ea6245e89149872405a3844e0778a004a (patch) | |
| tree | 8ddc334a3be9f0248ee83c8a5bf2b84be2204953 | |
| parent | 41724e4cf6c443d2dc575669b8555f0e2ae427a9 (diff) | |
| download | olio-linux-3.10-1d77822ea6245e89149872405a3844e0778a004a.tar.xz olio-linux-3.10-1d77822ea6245e89149872405a3844e0778a004a.zip  | |
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>
| -rw-r--r-- | tools/perf/builtin-diff.c | 18 | ||||
| -rw-r--r-- | tools/perf/builtin-report.c | 2 | ||||
| -rw-r--r-- | tools/perf/ui/browsers/hists.c | 2 | ||||
| -rw-r--r-- | tools/perf/ui/gtk/browser.c | 2 | ||||
| -rw-r--r-- | tools/perf/ui/hist.c | 15 | ||||
| -rw-r--r-- | tools/perf/ui/setup.c | 2 | ||||
| -rw-r--r-- | tools/perf/util/hist.h | 3 | 
7 files changed, 29 insertions, 15 deletions
diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 413c65a1ba3..a0b531c14b9 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c @@ -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(); diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 95e7ea879b8..a61725d89d3 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -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); diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c index a21f40bebba..bbd11c2f69d 100644 --- a/tools/perf/ui/browsers/hists.c +++ b/tools/perf/ui/browsers/hists.c @@ -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; diff --git a/tools/perf/ui/gtk/browser.c b/tools/perf/ui/gtk/browser.c index 7ff99ec1d95..2bc08f6af71 100644 --- a/tools/perf/ui/gtk/browser.c +++ b/tools/perf/ui/gtk/browser.c @@ -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; diff --git a/tools/perf/ui/hist.c b/tools/perf/ui/hist.c index 6b0138e5f33..e8853f7780a 100644 --- a/tools/perf/ui/hist.c +++ b/tools/perf/ui/hist.c @@ -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) diff --git a/tools/perf/ui/setup.c b/tools/perf/ui/setup.c index bd7d460f844..ebb4cc10787 100644 --- a/tools/perf/ui/setup.c +++ b/tools/perf/ui/setup.c @@ -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;  	}  } diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h index b83a2268b5d..a7f69d69dc6 100644 --- a/tools/perf/util/hist.h +++ b/tools/perf/util/hist.h @@ -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);  |