diff options
author | Jiri Olsa <jolsa@redhat.com> | 2012-10-04 08:49:39 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-10-04 12:30:27 -0400 |
commit | 1d77822ea6245e89149872405a3844e0778a004a (patch) | |
tree | 8ddc334a3be9f0248ee83c8a5bf2b84be2204953 /tools/perf | |
parent | 41724e4cf6c443d2dc575669b8555f0e2ae427a9 (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.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 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 | ||
259 | static 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 | |||
259 | int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused) | 274 | int 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 | ||
585 | void hist_browser__init_hpp(void) | 585 | void 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 | ||
74 | void perf_gtk__init_hpp(void) | 74 | void 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 | ||
305 | void perf_hpp__init(bool need_pair, bool show_displacement) | 305 | void 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) { | 324 | void 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 | ||
333 | static inline void advance_hpp(struct perf_hpp *hpp, int inc) | 330 | 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 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 | ||
150 | void perf_hpp__init(bool need_pair, bool show_displacement); | 150 | void perf_hpp__init(void); |
151 | void perf_hpp__column_enable(unsigned col, bool enable); | ||
151 | int hist_entry__period_snprintf(struct perf_hpp *hpp, struct hist_entry *he, | 152 | int hist_entry__period_snprintf(struct perf_hpp *hpp, struct hist_entry *he, |
152 | bool color); | 153 | bool color); |
153 | 154 | ||