diff options
author | Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> | 2018-12-17 10:54:23 +0100 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2019-01-17 23:38:00 +0100 |
commit | 3affbf0e154ee351add6fcc254c59c3f3947fa8f (patch) | |
tree | 106b88f03954da9ecd02dc1e9969b07c3afa2662 /arch/arc | |
parent | ARC: adjust memblock_reserve of kernel memory (diff) | |
download | linux-3affbf0e154ee351add6fcc254c59c3f3947fa8f.tar.xz linux-3affbf0e154ee351add6fcc254c59c3f3947fa8f.zip |
ARC: perf: map generic branches to correct hardware condition
So far we've mapped branches to "ijmp" which also counts conditional
branches NOT taken. This makes us different from other architectures
such as ARM which seem to be counting only taken branches.
So use "ijmptak" hardware condition which only counts (all jump
instructions that are taken)
'ijmptak' event is available on both ARCompact and ARCv2 ISA based
cores.
Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Cc: stable@vger.kernel.org
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
[vgupta: reworked changelog]
Diffstat (limited to 'arch/arc')
-rw-r--r-- | arch/arc/include/asm/perf_event.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arc/include/asm/perf_event.h b/arch/arc/include/asm/perf_event.h index 9185541035cc..6958545390f0 100644 --- a/arch/arc/include/asm/perf_event.h +++ b/arch/arc/include/asm/perf_event.h @@ -103,7 +103,8 @@ static const char * const arc_pmu_ev_hw_map[] = { /* counts condition */ [PERF_COUNT_HW_INSTRUCTIONS] = "iall", - [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = "ijmp", /* Excludes ZOL jumps */ + /* All jump instructions that are taken */ + [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = "ijmptak", [PERF_COUNT_ARC_BPOK] = "bpok", /* NP-NT, PT-T, PNT-NT */ #ifdef CONFIG_ISA_ARCV2 [PERF_COUNT_HW_BRANCH_MISSES] = "bpmp", |