linux-uconsole/tools/perf/util
Kan Liang 80ee8c588a perf stat: Fix duplicate PMU name for interval print
PMU name is printed repeatedly for interval print, for example:

  perf stat --no-merge -e 'unc_m_clockticks' -a -I 1000
  #           time             counts unit events
     1.001053069        243,702,144      unc_m_clockticks [uncore_imc_4]
     1.001053069        244,268,304      unc_m_clockticks [uncore_imc_2]
     1.001053069        244,427,386      unc_m_clockticks [uncore_imc_0]
     1.001053069        244,583,760      unc_m_clockticks [uncore_imc_5]
     1.001053069        244,738,971      unc_m_clockticks [uncore_imc_3]
     1.001053069        244,880,309      unc_m_clockticks [uncore_imc_1]
     2.002024821        240,818,200      unc_m_clockticks [uncore_imc_4] [uncore_imc_4]
     2.002024821        240,767,812      unc_m_clockticks [uncore_imc_2] [uncore_imc_2]
     2.002024821        240,764,215      unc_m_clockticks [uncore_imc_0] [uncore_imc_0]
     2.002024821        240,759,504      unc_m_clockticks [uncore_imc_5] [uncore_imc_5]
     2.002024821        240,755,992      unc_m_clockticks [uncore_imc_3] [uncore_imc_3]
     2.002024821        240,750,403      unc_m_clockticks [uncore_imc_1] [uncore_imc_1]

For each print, the PMU name is unconditionally appended to the
counter->name.

Need to check the counter->name first. If the PMU name is already
appended, do nothing.

Committer notes:

Add and use perf_evsel->uniquified_name bool instead of doing the more
expensive strstr(event->name, pmu->name).

Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Agustin Vega-Frias <agustinv@codeaurora.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
Cc: Jin Yao <yao.jin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
Cc: Will Deacon <will.deacon@arm.com>
Fixes: 8c5421c016 ("perf pmu: Display pmu name when printing unmerged events in stat")
Link: http://lkml.kernel.org/r/1524594014-79243-5-git-send-email-kan.liang@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2018-04-24 16:12:00 -03:00
..
c++ perf tests clang: Fix function name for clang IR test 2018-04-09 11:13:09 -03:00
cs-etm-decoder coresight: Move to SPDX identifier 2018-04-19 12:29:41 -03:00
include
intel-pt-decoder perf intel-pt: Fix timestamp following overflow 2018-03-08 10:05:56 -03:00
libunwind
scripting-engines perf tools: Add Python 3 support 2018-02-19 12:28:23 -03:00
annotate.c perf annotate: Allow setting the offset level in .perfconfig 2018-04-13 10:00:05 -03:00
annotate.h perf annotate: Allow showing offsets in more than just jump targets 2018-04-12 10:32:39 -03:00
arm-spe-pkt-decoder.c perf tools: Add ARM Statistical Profiling Extensions (SPE) support 2018-01-17 10:23:31 -03:00
arm-spe-pkt-decoder.h perf tools: Add ARM Statistical Profiling Extensions (SPE) support 2018-01-17 10:23:31 -03:00
arm-spe.c perf tools: Add ARM Statistical Profiling Extensions (SPE) support 2018-01-17 10:23:31 -03:00
arm-spe.h perf tools: Add ARM Statistical Profiling Extensions (SPE) support 2018-01-17 10:23:31 -03:00
auxtrace.c perf auxtrace: Make auxtrace_queues__add_buffer() do CPU filtering 2018-04-06 09:40:41 -03:00
auxtrace.h perf auxtrace: Add missing parameters from kernel-doc comments 2018-03-07 10:22:26 -03:00
block-range.c
block-range.h
bpf-loader.c perf bpf: Remove misplaced __maybe_unused attribute 2018-01-25 06:37:28 -03:00
bpf-loader.h
bpf-prologue.c
bpf-prologue.h
branch.c
branch.h
Build perf tools: Add mem2node object 2018-03-16 13:52:37 -03:00
build-id.c perf machine: Move kernel mmap name into struct machine 2018-02-16 14:25:57 -03:00
build-id.h
cache.h
call-path.c
call-path.h
callchain.c perf unwind: Do not look just at the global callchain_param.record_mode 2018-01-17 10:23:32 -03:00
callchain.h perf unwind: Do not look just at the global callchain_param.record_mode 2018-01-17 10:23:32 -03:00
cgroup.c perf tools: Fix snprint warnings for gcc 8 2018-03-19 10:00:43 -03:00
cgroup.h perf cgroup: Make the cgroup name be const char * 2018-03-07 10:22:26 -03:00
cloexec.c
cloexec.h
color.c
color.h
comm.c
comm.h
compress.h
config.c
config.h
counts.c
counts.h
cpumap.c
cpumap.h
cs-etm.c coresight: Move to SPDX identifier 2018-04-19 12:29:41 -03:00
cs-etm.h coresight: Move to SPDX identifier 2018-04-19 12:29:41 -03:00
ctype.c
data-convert-bt.c
data-convert-bt.h
data-convert.h
data.c perf tools: Move conditional O_CLOEXEC to util.h 2018-01-23 09:48:20 -03:00
data.h
db-export.c
db-export.h
debug.c perf debug: Avoid setting 'quiet' to 'true' unnecessarily 2018-03-16 16:39:02 -03:00
debug.h
demangle-java.c
demangle-java.h
demangle-rust.c
demangle-rust.h
drv_configs.c
drv_configs.h
dso.c perf symbols: Using O_CLOEXEC in do_open 2018-01-23 09:49:28 -03:00
dso.h
dump-insn.c
dump-insn.h
dwarf-aux.c perf config: Rename to HAVE_DWARF_GETLOCATIONS_SUPPORT 2018-04-02 13:50:24 -03:00
dwarf-aux.h
dwarf-regs.c
env.c perf env: Free memory nodes data 2018-03-16 13:52:09 -03:00
env.h perf tools: Add MEM_TOPOLOGY feature to perf data file 2018-03-08 11:30:46 -03:00
event.c perf report: Extend raw dump (-D) out with switch out event type 2018-04-17 09:47:39 -03:00
event.h perf tools: Get rid of unused 'swapped' parameter from perf_event__synthesize_sample() 2018-01-18 09:01:23 -03:00
evlist.c perf evlist: Store 'overwrite' in struct perf_mmap 2018-03-08 10:05:50 -03:00
evlist.h perf mmap: Discard legacy interfaces for mmap read forward 2018-03-05 10:51:10 -03:00
evsel.c perf evsel: Only fall back group read for leader 2018-04-24 16:11:59 -03:00
evsel.h perf stat: Fix duplicate PMU name for interval print 2018-04-24 16:12:00 -03:00
evsel_fprintf.c
expr.h
expr.y
find-vdso-map.c
genelf.c
genelf.h
genelf_debug.c
generate-cmdlist.sh perf tools: Rename HAVE_SYSCALL_TABLE to HAVE_SYSCALL_TABLE_SUPPORT 2018-04-12 10:33:31 -03:00
group.h
header.c perf record: Change warning for missing sysfs entry to debug 2018-04-13 09:59:56 -03:00
header.h perf tools: Add MEM_TOPOLOGY feature to perf data file 2018-03-08 11:30:46 -03:00
help-unknown-cmd.c
help-unknown-cmd.h
hist.c perf hists: Move hists__scnprintf_title() away from the TUI code 2018-04-03 10:23:32 -03:00
hist.h perf hists: Introduce hists__scnprint_title() 2018-04-03 10:23:18 -03:00
intel-bts.c perf tools: Get rid of unused 'swapped' parameter from perf_event__synthesize_sample() 2018-01-18 09:01:23 -03:00
intel-bts.h
intel-pt.c perf intel-pt: Adjust overlap-checking to support sampling mode 2018-03-08 10:05:58 -03:00
intel-pt.h
intlist.c
intlist.h
jit.h
jitdump.c
jitdump.h
kvm-stat.h
levenshtein.c
levenshtein.h
llvm-utils.c perf llvm: Display eBPF compiling command in debug output 2018-03-16 13:56:12 -03:00
llvm-utils.h
lzma.c
machine.c perf machine: Set main kernel end address properly 2018-04-23 10:52:55 -03:00
machine.h perf machine: Remove machine__load_kallsyms() 2018-02-16 14:25:58 -03:00
map.c perf report: Fix a wrong offset issue when using /proc/kcore 2018-01-08 11:11:57 -03:00
map.h perf tools: Add a "dso_size" sort order 2018-04-02 07:57:37 -03:00
mem-events.c
mem-events.h
mem2node.c perf tools: Add mem2node object 2018-03-16 13:52:37 -03:00
mem2node.h perf tools: Add mem2node object 2018-03-16 13:52:37 -03:00
memswap.c
memswap.h
metricgroup.c perf perf: Remove duplicate includes 2017-12-27 12:15:49 -03:00
metricgroup.h
mmap.c perf mmap: Be consistent when checking for an unmaped ring buffer 2018-03-27 13:13:38 -03:00
mmap.h perf mmap: Simplify perf_mmap__read_init() 2018-03-08 10:05:53 -03:00
namespaces.c
namespaces.h
ordered-events.c perf ordered_events: Pass timestamp arg in perf_session__queue_event 2017-11-17 12:14:09 -03:00
ordered-events.h perf ordered_events: Pass timestamp arg in perf_session__queue_event 2017-11-17 12:14:09 -03:00
parse-branch-options.c
parse-branch-options.h
parse-events.c perf tools: Fix snprint warnings for gcc 8 2018-03-19 10:00:43 -03:00
parse-events.h perf pmu: Auto-merge PMU events created by prefix or glob match 2018-03-08 10:05:49 -03:00
parse-events.l perf pmu: Support wildcards on pmu name in dynamic pmu events 2018-03-08 10:05:25 -03:00
parse-events.y perf pmu: Fix pmu events parsing rule 2018-04-23 11:17:27 -03:00
parse-regs-options.c
parse-regs-options.h
path.c perf utils: Move is_directory() to path.h 2017-12-27 12:15:48 -03:00
path.h perf utils: Move is_directory() to path.h 2017-12-27 12:15:48 -03:00
perf-hooks-list.h
perf-hooks.c
perf-hooks.h
PERF-VERSION-GEN
perf_regs.c
perf_regs.h
pmu.c perf pmu: Fix core PMU alias list for X86 platform 2018-04-24 16:02:29 -03:00
pmu.h perf pmu: Pass pmu as a parameter to get_cpuid_str() 2017-12-05 10:24:33 -03:00
pmu.l
pmu.y
print_binary.c
print_binary.h
probe-event.c perf probe: Support escaped character in parser 2017-12-27 12:15:55 -03:00
probe-event.h
probe-file.c
probe-file.h
probe-finder.c perf probe: Use right type to access array elements 2018-03-19 13:51:53 -03:00
probe-finder.h
pstack.c
pstack.h
python-ext-sources perf evsel: Fix swap for samples with raw data 2017-12-27 12:15:56 -03:00
python.c perf python: Reference Py_None before returning it 2018-03-23 16:45:20 -03:00
quote.c
quote.h
rb_resort.h
rblist.c perf rblist: Create rblist__exit() function 2017-12-05 10:24:31 -03:00
rblist.h perf rblist: Create rblist__exit() function 2017-12-05 10:24:31 -03:00
record.c perf record: Fix crash in pipe mode 2018-03-05 11:52:41 -03:00
rwsem.c
rwsem.h
sane_ctype.h
session.c perf report: Remove duplicated 'samples' in lost samples warning 2018-04-05 14:34:09 -03:00
session.h perf/core improvements and fixes: 2017-11-18 08:59:27 +01:00
setns.c
setup.py perf tools: Fix python extension build for gcc 8 2018-03-19 13:39:46 -03:00
smt.c
smt.h
sort.c perf tools: Add a "dso_size" sort order 2018-04-02 07:57:37 -03:00
sort.h perf tools: Add a "dso_size" sort order 2018-04-02 07:57:37 -03:00
srcline.c perf report: Fix a wrong offset issue when using /proc/kcore 2018-01-08 11:11:57 -03:00
srcline.h perf report: Fix a wrong offset issue when using /proc/kcore 2018-01-08 11:11:57 -03:00
stat-shadow.c perf stat: Remove a set of shadow stats static variables 2017-12-27 12:15:44 -03:00
stat.c perf stat: Make function perf_stat_evsel_id_init static 2018-03-16 13:56:17 -03:00
stat.h perf stat: Make function perf_stat_evsel_id_init static 2018-03-16 13:56:17 -03:00
strbuf.c
strbuf.h
strfilter.c
strfilter.h
string.c perf string: Add {strdup,strpbrk}_esc() 2017-12-27 12:15:55 -03:00
string2.h perf string: Add {strdup,strpbrk}_esc() 2017-12-27 12:15:55 -03:00
strlist.c
strlist.h
svghelper.c
svghelper.h
symbol-elf.c
symbol-minimal.c
symbol.c perf report: Fix switching to another perf.data file 2018-04-13 10:00:04 -03:00
symbol.h perf tools: Add refcnt into struct mem_info 2018-03-08 11:30:44 -03:00
symbol_fprintf.c
syscalltbl.c perf tools: Rename HAVE_SYSCALL_TABLE to HAVE_SYSCALL_TABLE_SUPPORT 2018-04-12 10:33:31 -03:00
syscalltbl.h
target.c
target.h perf stat: Remove --per-thread pid/tid limitation 2017-12-27 12:15:47 -03:00
term.c
term.h
thread-stack.c
thread-stack.h
thread.c
thread.h perf sched: Move thread::shortname to thread_runtime 2018-03-07 10:22:26 -03:00
thread_map.c perf stat: Ignore error thread when enabling system-wide --per-thread 2018-02-27 11:29:21 -03:00
thread_map.h perf stat: Ignore error thread when enabling system-wide --per-thread 2018-02-27 11:29:21 -03:00
time-utils.c perf util: Allocate time slices buffer according to number of comma 2018-01-17 10:23:36 -03:00
time-utils.h perf util: Allocate time slices buffer according to number of comma 2018-01-17 10:23:36 -03:00
tool.h perf tools: Make the tool's warning messages optional 2018-01-10 12:00:55 -03:00
top.c
top.h
trace-event-info.c
trace-event-parse.c
trace-event-read.c
trace-event-scripting.c perf script: Use HAVE_LIBXXX_SUPPORT to replace NO_LIBXXX 2018-04-12 10:33:29 -03:00
trace-event.c
trace-event.h
trigger.h perf tools: Fix trigger class trigger_on() 2018-03-06 11:31:14 -03:00
tsc.c
tsc.h
units.c
units.h
unwind-libdw.c perf unwind: Report error from dwfl_attach_state 2018-03-20 13:16:09 -03:00
unwind-libdw.h
unwind-libunwind-local.c perf unwind: Do not look just at the global callchain_param.record_mode 2018-01-17 10:23:32 -03:00
unwind-libunwind.c perf env: Adopt perf_env__arch() from the annotate code 2017-12-27 12:15:52 -03:00
unwind.h
usage.c
util-cxx.h
util.c perf tools: Substitute yet another strtoull() 2018-02-15 09:57:19 -03:00
util.h perf tools: No need to include namespaces.h in util.h 2018-04-09 10:57:50 -03:00
values.c
values.h
vdso.c
vdso.h
xyarray.c
xyarray.h
zlib.c