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 | |
| 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')
| -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 | ||
