aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
authorJiri Olsa <jolsa@redhat.com>2012-10-04 08:49:39 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2012-10-04 12:30:27 -0400
commit1d77822ea6245e89149872405a3844e0778a004a (patch)
tree8ddc334a3be9f0248ee83c8a5bf2b84be2204953 /tools/perf
parent41724e4cf6c443d2dc575669b8555f0e2ae427a9 (diff)
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>
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/builtin-diff.c18
-rw-r--r--tools/perf/builtin-report.c2
-rw-r--r--tools/perf/ui/browsers/hists.c2
-rw-r--r--tools/perf/ui/gtk/browser.c2
-rw-r--r--tools/perf/ui/hist.c15
-rw-r--r--tools/perf/ui/setup.c2
-rw-r--r--tools/perf/util/hist.h3
7 files changed, 29 insertions, 15 deletions
diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c
index 413c65a1ba39..a0b531c14b97 100644
--- a/tools/perf/builtin-diff.c
+++ b/tools/perf/builtin-diff.c
@@ -256,6 +256,21 @@ static const struct option options[] = {
256 OPT_END() 256 OPT_END()
257}; 257};
258 258
259static void ui_init(void)
260{
261 perf_hpp__init();
262
263 /* No overhead column. */
264 perf_hpp__column_enable(PERF_HPP__OVERHEAD, false);
265
266 /* Display baseline/delta/displacement columns. */
267 perf_hpp__column_enable(PERF_HPP__BASELINE, true);
268 perf_hpp__column_enable(PERF_HPP__DELTA, true);
269
270 if (show_displacement)
271 perf_hpp__column_enable(PERF_HPP__DISPL, true);
272}
273
259int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused) 274int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused)
260{ 275{
261 sort_order = diff__default_sort_order; 276 sort_order = diff__default_sort_order;
@@ -278,7 +293,8 @@ int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused)
278 if (symbol__init() < 0) 293 if (symbol__init() < 0)
279 return -1; 294 return -1;
280 295
281 perf_hpp__init(true, show_displacement); 296 ui_init();
297
282 setup_sorting(diff_usage, options); 298 setup_sorting(diff_usage, options);
283 setup_pager(); 299 setup_pager();
284 300
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 95e7ea879b8a..a61725d89d3e 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)
691 setup_browser(true); 691 setup_browser(true);
692 else { 692 else {
693 use_browser = 0; 693 use_browser = 0;
694 perf_hpp__init(false, false); 694 perf_hpp__init();
695 } 695 }
696 696
697 setup_sorting(report_usage, options); 697 setup_sorting(report_usage, options);
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index a21f40bebbac..bbd11c2f69db 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)
584 584
585void hist_browser__init_hpp(void) 585void hist_browser__init_hpp(void)
586{ 586{
587 perf_hpp__init(false, false); 587 perf_hpp__init();
588 588
589 perf_hpp__format[PERF_HPP__OVERHEAD].color = 589 perf_hpp__format[PERF_HPP__OVERHEAD].color =
590 hist_browser__hpp_color_overhead; 590 hist_browser__hpp_color_overhead;
diff --git a/tools/perf/ui/gtk/browser.c b/tools/perf/ui/gtk/browser.c
index 7ff99ec1d95e..2bc08f6af714 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)
73 73
74void perf_gtk__init_hpp(void) 74void perf_gtk__init_hpp(void)
75{ 75{
76 perf_hpp__init(false, false); 76 perf_hpp__init();
77 77
78 perf_hpp__format[PERF_HPP__OVERHEAD].color = 78 perf_hpp__format[PERF_HPP__OVERHEAD].color =
79 perf_gtk__hpp_color_overhead; 79 perf_gtk__hpp_color_overhead;
diff --git a/tools/perf/ui/hist.c b/tools/perf/ui/hist.c
index 6b0138e5f332..e8853f7780a3 100644
--- a/tools/perf/ui/hist.c
+++ b/tools/perf/ui/hist.c
@@ -302,7 +302,7 @@ struct perf_hpp_fmt perf_hpp__format[] = {
302#undef HPP__COLOR_PRINT_FNS 302#undef HPP__COLOR_PRINT_FNS
303#undef HPP__PRINT_FNS 303#undef HPP__PRINT_FNS
304 304
305void perf_hpp__init(bool need_pair, bool show_displacement) 305void perf_hpp__init(void)
306{ 306{
307 if (symbol_conf.show_cpu_utilization) { 307 if (symbol_conf.show_cpu_utilization) {
308 perf_hpp__format[PERF_HPP__OVERHEAD_SYS].cond = true; 308 perf_hpp__format[PERF_HPP__OVERHEAD_SYS].cond = true;
@@ -319,15 +319,12 @@ void perf_hpp__init(bool need_pair, bool show_displacement)
319 319
320 if (symbol_conf.show_total_period) 320 if (symbol_conf.show_total_period)
321 perf_hpp__format[PERF_HPP__PERIOD].cond = true; 321 perf_hpp__format[PERF_HPP__PERIOD].cond = true;
322}
322 323
323 if (need_pair) { 324void perf_hpp__column_enable(unsigned col, bool enable)
324 perf_hpp__format[PERF_HPP__OVERHEAD].cond = false; 325{
325 perf_hpp__format[PERF_HPP__BASELINE].cond = true; 326 BUG_ON(col >= PERF_HPP__MAX_INDEX);
326 perf_hpp__format[PERF_HPP__DELTA].cond = true; 327 perf_hpp__format[col].cond = enable;
327
328 if (show_displacement)
329 perf_hpp__format[PERF_HPP__DISPL].cond = true;
330 }
331} 328}
332 329
333static inline void advance_hpp(struct perf_hpp *hpp, int inc) 330static 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 bd7d460f844c..ebb4cc107876 100644
--- a/tools/perf/ui/setup.c
+++ b/tools/perf/ui/setup.c
@@ -30,7 +30,7 @@ void setup_browser(bool fallback_to_pager)
30 if (fallback_to_pager) 30 if (fallback_to_pager)
31 setup_pager(); 31 setup_pager();
32 32
33 perf_hpp__init(false, false); 33 perf_hpp__init();
34 break; 34 break;
35 } 35 }
36} 36}
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index b83a2268b5d2..a7f69d69dc66 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -147,7 +147,8 @@ enum {
147 PERF_HPP__MAX_INDEX 147 PERF_HPP__MAX_INDEX
148}; 148};
149 149
150void perf_hpp__init(bool need_pair, bool show_displacement); 150void perf_hpp__init(void);
151void perf_hpp__column_enable(unsigned col, bool enable);
151int hist_entry__period_snprintf(struct perf_hpp *hpp, struct hist_entry *he, 152int hist_entry__period_snprintf(struct perf_hpp *hpp, struct hist_entry *he,
152 bool color); 153 bool color);
153 154