linux/tools/perf/util
Thomas Richter ea1fa48c05 perf stat: Handle different PMU names with common prefix
On s390 the CPU Measurement Facility for counters now supports
2 PMUs named cpum_cf (CPU Measurement Facility for counters) and
cpum_cf_diag (CPU Measurement Facility for diagnostic counters)
for one and the same CPU.

Running command

 [root@s35lp76 perf]# ./perf stat -e tx_c_tend \
	 -- ~/mytests/cf-tx-events 1

 Measuring transactions
 TX_C_TABORT_NO_SPECIAL: 0 expected:0
 TX_C_TABORT_SPECIAL: 0 expected:0
 TX_C_TEND: 1 expected:1
 TX_NC_TABORT: 11 expected:11
 TX_NC_TEND: 1 expected:1

 Performance counter stats for '/root/mytests/cf-tx-events 1':

  2      tx_c_tend

      0.002120091 seconds time elapsed

      0.000121000 seconds user
      0.002127000 seconds sys

 [root@s35lp76 perf]#

displays output which is unexpected (and wrong):

  2      tx_c_tend

The test program definitely triggers only one transaction, as shown
in line 'TX_C_TEND: 1 expected:1'.

This is caused by the following call sequence:

pmu_lookup() scans and installs a PMU.
+--> pmu_aliases() parses all aliases in directory
		.../<pmu-name>/events/* which are file names.
     +--> pmu_aliases_parse() Read each file in directory and create
                      an new alias entry. This is done with
          +--> perf_pmu__new_alias() and
	       +--> __perf_pmu__new_alias() which also check for
	                   identical alias names.

After pmu_aliases() returns, a complete list of event names
for this pmu has been created. Now function

pmu_add_cpu_aliases()   is called to add the events listed in the json
|                       files to the alias list of the cpu.
+--> perf_pmu__find_map()  Returns a pointer to the json events.

Now function pmu_add_cpu_aliases() scans through all events listed
in the JSON files for this CPU.
Each json event pmu name is compared with the current PMU being
built up and if they mismatch, the json event is added to the
current PMUs alias list.
To avoid duplicate entries the following comparison is done:

	if (!is_arm_pmu_core(name)) {
	     pname = pe->pmu ? pe->pmu : "cpu";
	     if (strncmp(pname, name, strlen(pname)))
		     continue;
     }

The culprit is the strncmp() function.

Using current s390 PMU naming, the first PMU is 'cpum_cf'
and a long list of events is added, among them 'tx_c_tend'

When the second PMU named 'cpum_cf_diag' is added, only one event
named 'CF_DIAG' is added by the pmu_aliases()  function.

Now function pmu_add_cpu_aliases() is invoked for PMU 'cpum_cf_diag'.
Since the CPUID string is the same for both PMUs, json file events
for PMU named 'cpum_cf' are added to the PMU 'cpm_cf_diag'

This happens because the strncmp() actually compares:

     strncmp("cpum_cf", "cpum_cf_diag", 6);

The first parameter is the pmu name taken from the event in
the json file. The second parameter is the pmu name of the PMU
currently being built.
They are different, but the length of the compare only tests the
common prefix and this returns 0(true) when it should return false.

Now all events for PMU cpum_cf are added to the alias list for pmu
cpum_cf_diag.

Later on in function parse_events_add_pmu() the event 'tx_c_end' is
searched in all available PMUs and found twice, adding it two
times to the evsel_list global variable which is the root
of all events. This results in a counter value of 2 instead
of 1.

Output with this patch:

 [root@s35lp76 perf]# ./perf stat -e tx_c_tend \
			-- ~/mytests/cf-tx-events 1
 Measuring transactions
 TX_C_TABORT_NO_SPECIAL: 0 expected:0
 TX_C_TABORT_SPECIAL: 0 expected:0
 TX_C_TEND: 1 expected:1
 TX_NC_TABORT: 11 expected:11
 TX_NC_TEND: 1 expected:1

 Performance counter stats for '/root/mytests/cf-tx-events 1':

                  1      tx_c_tend

      0.001815365 seconds time elapsed

      0.000123000 seconds user
      0.001756000 seconds sys

 [root@s35lp76 perf]#

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com>
Reviewed-by: Sebastien Boisvert <sboisvert@gydle.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: stable@vger.kernel.org
Fixes: 292c34c102 ("perf pmu: Fix core PMU alias list for X86 platform")
Link: http://lkml.kernel.org/r/20181023151616.78193-1-tmricht@linux.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2018-11-05 14:37:10 -03:00
..
c++ perf tools: Fix a clang 7.0 compilation error 2018-06-25 11:59:37 -03:00
cs-etm-decoder perf cs-etm: Fix start tracing packet handling 2018-07-31 10:57:56 -03:00
include License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
intel-pt-decoder perf intel-pt: Implement decoder flags for trace begin / end 2018-09-20 15:19:52 -03:00
libunwind License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
scripting-engines tools lib traceevent, perf tools: Rename enum print_arg_type to enum tep_print_arg_type 2018-09-19 17:17:44 -03:00
annotate.c perf annotate: Add Sparc support 2018-10-18 11:16:38 -03:00
annotate.h perf annotate: Fix parsing aarch64 branch instructions after objdump update 2018-08-30 15:51:54 -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 script: Make itrace script default to all calls 2018-10-24 15:29:54 -03:00
auxtrace.h perf script: Make itrace script default to all calls 2018-10-24 15:29:54 -03:00
block-range.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
block-range.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bpf-loader.c perf bpf-loader: use PTR_ERR_OR_ZERO inetead of return code 2018-09-19 10:25:09 -03:00
bpf-loader.h perf bpf: Make bpf__setup_output_event() return the bpf-output event 2018-08-08 15:55:58 -03:00
bpf-prologue.c docs: Fix some broken references 2018-06-15 18:10:01 -03:00
bpf-prologue.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
branch.c perf util: Create branch.c/.h for common branch functions 2017-07-18 23:14:40 -03:00
branch.h perf report: Tag branch type/flag on "to" and tag cycles on "from" 2017-07-25 22:46:35 -03:00
Build perf stat: Move the display functions to stat-display.c 2018-08-30 15:52:25 -03:00
build-id.c perf thread: Make thread__find_map() return the map 2018-04-26 13:47:08 -03:00
build-id.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cache.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
call-path.c perf tools: Refactor code to move call path handling out of thread-stack 2016-05-06 13:00:43 -03:00
call-path.h perf tools: Refactor code to move call path handling out of thread-stack 2016-05-06 13:00:43 -03:00
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 cgroup: Make evlist__find_cgroup() more compact 2018-06-04 10:28:50 -03:00
cgroup.h perf cgroup: Make the cgroup name be const char * 2018-03-07 10:22:26 -03:00
cloexec.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cloexec.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
color.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
color.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
comm.c perf tools: Fix struct comm_str removal crash 2018-07-24 14:54:03 -03:00
comm.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
compress.h perf tools: Add is_compressed callback to compressions array 2018-08-20 08:54:59 -03:00
config.c perf config: Call perf_config__init() lazily 2018-05-16 16:11:09 -03:00
config.h perf config: Call perf_config__init() lazily 2018-05-16 16:11:09 -03:00
counts.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
counts.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cpumap.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cpumap.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cs-etm.c perf cs-etm: Correct CPU mode for samples 2018-10-31 09:57:50 -03:00
cs-etm.h coresight: Move to SPDX identifier 2018-04-19 12:29:41 -03:00
ctype.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
data-convert-bt.c tools lib traceevent, perf tools: Rename enum format_flags to enum tep_format_flags 2018-09-19 17:14:13 -03:00
data-convert-bt.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
data-convert.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
data.c perf tools: Move conditional O_CLOEXEC to util.h 2018-01-23 09:48:20 -03:00
data.h Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
db-export.c perf db-export: Add trace begin / end branch type variants 2018-09-20 11:10:25 -03:00
db-export.h perf script: Add call path id to exported sample in db export 2016-05-06 13:00:53 -03:00
debug.c perf debug: Avoid setting 'quiet' to 'true' unnecessarily 2018-03-16 16:39:02 -03:00
debug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
demangle-java.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
demangle-java.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
demangle-rust.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
demangle-rust.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drv_configs.c perf tools: Include errno.h where needed 2017-04-19 13:01:51 -03:00
drv_configs.h perf pmu: Push configuration down to PMU driver 2016-09-22 12:19:41 -03:00
dso.c perf tools: Remove ext from struct kmod_path 2018-08-20 08:54:59 -03:00
dso.h perf tools: Remove ext from struct kmod_path 2018-08-20 08:54:59 -03:00
dump-insn.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dump-insn.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dwarf-aux.c perf config: Rename to HAVE_DWARF_GETLOCATIONS_SUPPORT 2018-04-02 13:50:24 -03:00
dwarf-aux.h perf probe: Match linkage name with mangled name 2016-09-29 11:17:08 -03:00
dwarf-regs.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
env.c perf machine: Add nr_cpus_avail() 2018-05-22 10:52:49 -03:00
env.h perf record: Encode -k clockid frequency into Perf trace 2018-10-18 11:16:38 -03:00
event.c perf tools: Don't clone maps from parent when synthesizing forks 2018-10-31 10:18:01 -03:00
event.h perf machine: Synthesize and process mmap events for x86 PTI entry trampolines 2018-05-23 10:26:39 -03:00
evlist.c perf evlist: Move perf_evsel__reset_weak_group into evlist 2018-11-05 14:37:09 -03:00
evlist.h perf evlist: Move perf_evsel__reset_weak_group into evlist 2018-11-05 14:37:09 -03:00
evsel_fprintf.c tools lib traceevent, perf tools: Rename struct format{_field} to struct tep_format{_field} 2018-09-19 17:13:15 -03:00
evsel.c Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-23 13:32:18 +01:00
evsel.h perf trace: Introduce per-event maximum number of events property 2018-10-22 14:27:12 -03:00
expr.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
expr.y perf tools: Dedup events in expression parsing 2017-08-22 12:19:08 -03:00
find-vdso-map.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
genelf_debug.c tools: Adopt __packed from kernel sources 2017-06-19 15:27:07 -03:00
genelf.c perf tools: Fix spelling mistake: "builid" -> "buildid" 2018-04-30 12:02:03 -03:00
genelf.h perf jitdump: Add Sparc support. 2018-10-18 11:16:38 -03:00
generate-cmdlist.sh perf tools: Rename HAVE_SYSCALL_TABLE to HAVE_SYSCALL_TABLE_SUPPORT 2018-04-12 10:33:31 -03:00
group.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
header.c perf record: Encode -k clockid frequency into Perf trace 2018-10-18 11:16:38 -03:00
header.h perf record: Encode -k clockid frequency into Perf trace 2018-10-18 11:16:38 -03:00
help-unknown-cmd.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
help-unknown-cmd.h
hist.c perf hists: Reimplement hists__has_callchains() 2018-06-07 14:42:27 -03:00
hist.h perf hists: Clarify callchain disabling when available 2018-07-24 14:37:33 -03:00
intel-bts.c perf intel-pt/bts: Calculate cpumode for synthesized samples 2018-10-31 12:56:26 -03:00
intel-bts.h
intel-pt.c perf intel-pt/bts: Calculate cpumode for synthesized samples 2018-10-31 12:56:26 -03:00
intel-pt.h perf intel-pt: Record address filter in AUXTRACE_INFO event 2016-09-29 11:17:05 -03:00
intlist.c
intlist.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
jit.h Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
jitdump.c Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
jitdump.h perf jit: Add unwinding support 2016-10-24 11:07:39 -03:00
kvm-stat.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
levenshtein.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
levenshtein.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
llvm-utils.c perf bpf: Give precedence to bpf header dir 2018-08-30 15:52:20 -03:00
llvm-utils.h perf llvm: Allow passing options to llc in addition to clang 2018-08-20 08:54:58 -03:00
lzma.c perf tools: Add lzma_is_compressed function 2018-08-20 08:54:59 -03:00
machine.c perf tools: Don't clone maps from parent when synthesizing forks 2018-10-31 10:18:01 -03:00
machine.h tools lib traceevent, perf tools: Rename pevent_set_* APIs 2018-08-13 15:22:10 -03:00
map.c Merge remote-tracking branch 'acme/perf/urgent' into perf/core 2018-09-18 17:20:41 -03:00
map.h perf map: Optimize maps__fixup_overlappings() 2018-08-08 15:56:00 -03:00
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
mem-events.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mem-events.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
memswap.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
memswap.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
metricgroup.c perf list: Unify metric group description format with PMU event description 2018-07-31 11:35:44 -03:00
metricgroup.h perf stat: Add transaction flag (-T) support for s390 2018-07-24 14:49:37 -03:00
mmap.c perf tools: Add 'struct perf_mmap' arg to record__write() 2018-09-19 10:25:11 -03:00
mmap.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-10-24 06:47:44 +01:00
namespaces.c perf tools: Check for null when copying nsinfo. 2018-08-13 15:39:09 -03:00
namespaces.h perf tools: Fix the build on the alpine:edge distro 2018-07-30 13:15:03 -03:00
ordered-events.c perf ordered_events: Prevent crossing max_alloc_size 2018-09-19 10:25:08 -03:00
ordered-events.h perf ordered_events: Add 'struct ordered_events_buffer' layer 2018-09-19 10:24:57 -03:00
parse-branch-options.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
parse-branch-options.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
parse-events.c perf evsel: Introduce per event max_events property 2018-10-19 16:31:09 -03:00
parse-events.h perf evsel: Introduce per event max_events property 2018-10-19 16:31:09 -03:00
parse-events.l perf evsel: Introduce per event max_events property 2018-10-19 16:31:09 -03:00
parse-events.y perf tools: Fix error index for pmu event parser 2018-06-07 15:50:14 -03:00
parse-regs-options.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
parse-regs-options.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
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_regs.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf_regs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf-hooks-list.h perf tools: Introduce perf hooks 2016-11-29 12:13:27 -03:00
perf-hooks.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf-hooks.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
PERF-VERSION-GEN License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pmu.c perf stat: Handle different PMU names with common prefix 2018-11-05 14:37:10 -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 Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
print_binary.h Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
probe-event.c perf probe: Use return of map__get() to make code more compact 2018-06-04 10:28:50 -03:00
probe-event.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
probe-file.c tools lib api: Unexport 'tracing_path' variable 2018-05-16 16:27:14 -03:00
probe-file.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
probe-finder.c perf probe: Use right type to access array elements 2018-03-19 13:51:53 -03:00
probe-finder.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pstack.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pstack.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
python-ext-sources perf evsel: Fix swap for samples with raw data 2017-12-27 12:15:56 -03:00
python.c tools lib traceevent, perf tools: Rename enum format_flags to enum tep_format_flags 2018-09-19 17:14:13 -03:00
rb_resort.h Merge branch 'linus' into perf/core, to fix conflicts 2017-11-07 10:30:18 +01:00
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 perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
rwsem.h perf tools: Provide mutex wrappers for pthreads rwlocks 2017-09-21 13:28:06 -03:00
s390-cpumsf-kernel.h perf report: Add raw report support for s390 auxiliary trace 2018-08-08 15:26:48 -03:00
s390-cpumsf.c perf report: Create auxiliary trace data files for s390 2018-08-30 15:52:20 -03:00
s390-cpumsf.h perf auxtrace: Support for perf report -D for s390 2018-08-03 10:34:18 -03:00
sane_ctype.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
session.c perf tools: Remove perf_tool from event_op3 2018-09-19 10:25:10 -03:00
session.h perf tools: Remove perf_tool from event_op2 2018-09-19 10:25:10 -03:00
setns.c tools build: Add test for setns() 2017-07-18 23:14:08 -03:00
setup.py perf python: More portable way to make CFLAGS work with clang 2018-10-08 14:30:45 -03:00
smt.c perf tools: Add utility function to detect SMT status 2017-08-22 12:09:04 -03:00
smt.h perf tools: Add utility function to detect SMT status 2017-08-22 12:09:04 -03:00
sort.c tools lib traceevent, perf tools: Rename enum format_flags to enum tep_format_flags 2018-09-19 17:14:13 -03:00
sort.h tools lib traceevent, perf tools: Rename struct pevent to struct tep_handle 2018-08-10 15:29:35 -03:00
srcline.c perf report: Don't crash on invalid inline debug information 2018-10-16 14:52:21 -03:00
srcline.h perf report: Fix a wrong offset issue when using /proc/kcore 2018-01-08 11:11:57 -03:00
stat-display.c perf stat: Move the display functions to stat-display.c 2018-08-30 15:52:25 -03:00
stat-shadow.c perf stat: Pass a 'struct perf_stat_config' argument to global print functions 2018-08-30 15:52:23 -03:00
stat.c perf tools: Remove perf_tool from event_op2 2018-09-19 10:25:10 -03:00
stat.h perf tools: Remove perf_tool from event_op2 2018-09-19 10:25:10 -03:00
strbuf.c perf strbuf: Match va_{add,copy} with va_end 2018-10-08 14:23:44 -03:00
strbuf.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
strfilter.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
strfilter.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
string2.h perf string: Add {strdup,strpbrk}_esc() 2017-12-27 12:15:55 -03:00
string.c perf string: Add {strdup,strpbrk}_esc() 2017-12-27 12:15:55 -03:00
strlist.c perf tools: Remove string.h, unistd.h and sys/stat.h from util.h 2017-04-24 13:43:33 -03:00
strlist.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
svghelper.c perf timechart: Use NSEC_PER_U?SEC 2016-08-23 15:37:33 -03:00
svghelper.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
symbol_fprintf.c perf symbols: Unify symbol maps 2018-04-27 10:47:06 -03:00
symbol-elf.c perf symbols: Set PLT entry/header sizes properly on Sparc 2018-10-18 11:19:44 -03:00
symbol-minimal.c perf symbols: Unify symbol maps 2018-04-27 10:47:06 -03:00
symbol.c perf symbols: Add BSS symbols when reading from /proc/kallsyms 2018-06-06 12:52:09 -03:00
symbol.h perf script: Implement --graph-function 2018-10-24 15:29:55 -03:00
syscalltbl.c perf trace arm64: Use generated syscall table 2018-07-24 14:53:01 -03:00
syscalltbl.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
target.c perf target: str_error_r() always returns the buffer it receives 2016-07-29 11:54:35 -03:00
target.h perf stat: Remove --per-thread pid/tid limitation 2017-12-27 12:15:47 -03:00
term.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
term.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01: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
thread-stack.c perf intel-pt: Insert callchain context into synthesized callchains 2018-10-31 12:54:27 -03:00
thread-stack.h perf intel-pt: Insert callchain context into synthesized callchains 2018-10-31 12:54:27 -03:00
thread.c perf tools: Don't clone maps from parent when synthesizing forks 2018-10-31 10:18:01 -03:00
thread.h perf tools: Don't clone maps from parent when synthesizing forks 2018-10-31 10:18:01 -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: Remove perf_tool from event_op3 2018-09-19 10:25:10 -03:00
top.c
top.h perf annotate stdio: Use annotation_options consistently 2018-06-04 10:28:52 -03:00
trace-event-info.c perf tools: Cleanup trace-event-info 'tdata' leak 2018-10-08 14:23:45 -03:00
trace-event-parse.c tools lib traceevent, perf tools: Move struct tep_handler definition in a local header file 2018-10-08 15:05:37 -03:00
trace-event-read.c tools lib traceevent, perf tools: Move struct tep_handler definition in a local header file 2018-10-08 15:05:37 -03:00
trace-event-scripting.c tools lib traceevent, perf tools: Rename struct pevent to struct tep_handle 2018-08-10 15:29:35 -03:00
trace-event.c tools lib traceevent, perf tools: Rename struct event_format to struct tep_event_format 2018-09-19 17:11:50 -03:00
trace-event.h tools lib traceevent: Rename struct plugin_list to struct tep_plugin_list 2018-09-19 17:29:26 -03:00
trigger.h perf tools: Fix trigger class trigger_on() 2018-03-06 11:31:14 -03:00
tsc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tsc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
units.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
units.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
unwind-libdw.c perf unwind: Take pgoff into account when reporting elf to libdwfl 2018-10-31 09:57:50 -03:00
unwind-libdw.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
unwind-libunwind-local.c perf script: Show correct offsets for DWARF-based unwinding 2018-07-24 14:53:11 -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 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
usage.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
util-cxx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
util.c perf util: Make copyfile_offset() global 2018-09-19 10:25:12 -03:00
util.h perf util: Make copyfile_offset() global 2018-09-19 10:25:12 -03:00
values.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
values.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vdso.c perf map: Remove enum_type arg to map_groups__first() 2018-04-26 13:47:15 -03:00
vdso.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xyarray.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xyarray.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
zlib.c perf tools: Add gzip_is_compressed function 2018-08-20 08:54:59 -03:00