diff options
author | He Kuang <hekuang@huawei.com> | 2015-02-14 21:33:37 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2015-02-27 13:52:42 -0500 |
commit | fefd2d9619de3bf0bf02a8622e9f445c3d19cc3f (patch) | |
tree | 09a9cb500016d781a0ee2e6c55ec447edb18ce76 /tools | |
parent | 0497d0a8201a38f0c95edc8a1fc0325f2f879ddb (diff) |
perf report: Fix branch stack mode cannot be set
When perf.data file is obtained using 'perf record -b', perf report
should use branch stack mode to generate output. But this function is
broken by improper comparison between boolean and constant -1.
before this patch:
$ perf report -b -i perf.data
Samples: 16 of event 'cycles', Event count (approx.): 3171896
Overhead Command Shared Object Symbol
13.59% ls [kernel.kallsyms] [k] prio_tree_remove
13.16% ls [kernel.kallsyms] [k] change_pte_range
12.09% ls [kernel.kallsyms] [k] page_fault
12.02% ls [kernel.kallsyms] [k] zap_pte_range
...
after this patch:
$ perf report -b -i perf.data
Samples: 256 of event 'cycles', Event count (approx.): 256
Overhead Command Source Shared Object Source Symbol Target Shared Object Target Symbol
9.38% ls [unknown] [k] 0000000000000000 [unknown] [k] 0000000000000000
6.25% ls libc-2.19.so [.] _dl_addr libc-2.19.so [.] _dl_addr
6.25% ls [kernel.kallsyms] [k] zap_pte_range [kernel.kallsyms] [k] zap_pte_range
6.25% ls [kernel.kallsyms] [k] change_pte_range [kernel.kallsyms] [k] change_pte_range
0.39% ls [kernel.kallsyms] [k] prio_tree_remove [kernel.kallsyms] [k] prio_tree_remove
...
Signed-off-by: He Kuang <hekuang@huawei.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1423967617-28879-1-git-send-email-hekuang@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/builtin-report.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 0ba5f07906fb..fb350343b1d7 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c | |||
@@ -768,7 +768,7 @@ repeat: | |||
768 | * 0/1 means the user chose a mode. | 768 | * 0/1 means the user chose a mode. |
769 | */ | 769 | */ |
770 | if (((branch_mode == -1 && has_br_stack) || branch_mode == 1) && | 770 | if (((branch_mode == -1 && has_br_stack) || branch_mode == 1) && |
771 | branch_call_mode == -1) { | 771 | !branch_call_mode) { |
772 | sort__mode = SORT_MODE__BRANCH; | 772 | sort__mode = SORT_MODE__BRANCH; |
773 | symbol_conf.cumulate_callchain = false; | 773 | symbol_conf.cumulate_callchain = false; |
774 | } | 774 | } |