diff options
author | Ingo Molnar <mingo@kernel.org> | 2019-09-20 12:14:00 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2019-09-20 12:16:42 -0400 |
commit | 351a1f5c8afa13ea5cfcdae543f6596ef8ebdbd9 (patch) | |
tree | 6d039ac0d47666bd6de701911a283c51bea7105e /tools/perf/arch | |
parent | 7f2444d38f6bbfa12bc15e2533d8f9daa85ca02b (diff) | |
parent | 2bff2b828502b5e5d5ea5a52643d3542053df03f (diff) |
Merge tag 'perf-core-for-mingo-5.4-20190920-2' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
perf stat:
Srikar Dronamraju:
- Fix a segmentation fault when using repeat forever.
- Reset previous counts on repeat with interval.
aarch64:
James Clark:
- Add PMU event JSON files for Cortex-A76 and Neoverse N1.
PowerPC:
Anju T Sudhakar:
- Make 'trace_cycles' the default event for 'perf kvm record' in PowerPC.
S/390:
- Link libjvmti to tools/lib/string.o to have a weak strlcpy()
implementation, providing previously unresolved symbol on s/390.
perf test:
Jiri Olsa:
- Add libperf automated tests to 'make -C tools/perf build-test'.
Colin Ian King:
- Fix spelling mistake.
Tree wide:
Arnaldo Carvalho de Melo:
- Some more header file sanitization.
libperf:
Jiri Olsa:
- Add dependency on libperf for python.so binding.
libtraceevent:
Sakari Ailus:
- Convert remaining %p[fF] users to %p[sS].
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/arch')
-rw-r--r-- | tools/perf/arch/arm/util/cs-etm.c | 2 | ||||
-rw-r--r-- | tools/perf/arch/arm64/util/arm-spe.c | 2 | ||||
-rw-r--r-- | tools/perf/arch/arm64/util/dwarf-regs.c | 1 | ||||
-rw-r--r-- | tools/perf/arch/arm64/util/header.c | 4 | ||||
-rw-r--r-- | tools/perf/arch/arm64/util/unwind-libunwind.c | 2 | ||||
-rw-r--r-- | tools/perf/arch/powerpc/util/dwarf-regs.c | 1 | ||||
-rw-r--r-- | tools/perf/arch/powerpc/util/header.c | 1 | ||||
-rw-r--r-- | tools/perf/arch/powerpc/util/kvm-stat.c | 45 | ||||
-rw-r--r-- | tools/perf/arch/powerpc/util/skip-callchain-idx.c | 1 | ||||
-rw-r--r-- | tools/perf/arch/powerpc/util/sym-handling.c | 1 | ||||
-rw-r--r-- | tools/perf/arch/s390/util/machine.c | 2 | ||||
-rw-r--r-- | tools/perf/arch/x86/tests/intel-cqm.c | 1 | ||||
-rw-r--r-- | tools/perf/arch/x86/tests/perf-time-to-tsc.c | 1 | ||||
-rw-r--r-- | tools/perf/arch/x86/tests/rdpmc.c | 2 | ||||
-rw-r--r-- | tools/perf/arch/x86/util/archinsn.c | 1 | ||||
-rw-r--r-- | tools/perf/arch/x86/util/event.c | 2 | ||||
-rw-r--r-- | tools/perf/arch/x86/util/intel-bts.c | 2 | ||||
-rw-r--r-- | tools/perf/arch/x86/util/intel-pt.c | 2 | ||||
-rw-r--r-- | tools/perf/arch/x86/util/machine.c | 3 | ||||
-rw-r--r-- | tools/perf/arch/x86/util/tsc.c | 2 |
20 files changed, 63 insertions, 15 deletions
diff --git a/tools/perf/arch/arm/util/cs-etm.c b/tools/perf/arch/arm/util/cs-etm.c index c32db09baf0d..5d120b1e35ed 100644 --- a/tools/perf/arch/arm/util/cs-etm.c +++ b/tools/perf/arch/arm/util/cs-etm.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include "../../util/evsel.h" | 25 | #include "../../util/evsel.h" |
26 | #include "../../util/pmu.h" | 26 | #include "../../util/pmu.h" |
27 | #include "../../util/cs-etm.h" | 27 | #include "../../util/cs-etm.h" |
28 | #include "../../util/util.h" | 28 | #include "../../util/util.h" // page_size |
29 | #include "../../util/session.h" | 29 | #include "../../util/session.h" |
30 | 30 | ||
31 | #include <errno.h> | 31 | #include <errno.h> |
diff --git a/tools/perf/arch/arm64/util/arm-spe.c b/tools/perf/arch/arm64/util/arm-spe.c index 4b364692da67..eebbf31f995c 100644 --- a/tools/perf/arch/arm64/util/arm-spe.c +++ b/tools/perf/arch/arm64/util/arm-spe.c | |||
@@ -16,7 +16,7 @@ | |||
16 | #include "../../util/evsel.h" | 16 | #include "../../util/evsel.h" |
17 | #include "../../util/evlist.h" | 17 | #include "../../util/evlist.h" |
18 | #include "../../util/session.h" | 18 | #include "../../util/session.h" |
19 | #include "../../util/util.h" | 19 | #include "../../util/util.h" // page_size |
20 | #include "../../util/pmu.h" | 20 | #include "../../util/pmu.h" |
21 | #include "../../util/debug.h" | 21 | #include "../../util/debug.h" |
22 | #include "../../util/auxtrace.h" | 22 | #include "../../util/auxtrace.h" |
diff --git a/tools/perf/arch/arm64/util/dwarf-regs.c b/tools/perf/arch/arm64/util/dwarf-regs.c index b047b882c5b1..917b97d7c5d3 100644 --- a/tools/perf/arch/arm64/util/dwarf-regs.c +++ b/tools/perf/arch/arm64/util/dwarf-regs.c | |||
@@ -11,7 +11,6 @@ | |||
11 | #include <dwarf-regs.h> | 11 | #include <dwarf-regs.h> |
12 | #include <linux/ptrace.h> /* for struct user_pt_regs */ | 12 | #include <linux/ptrace.h> /* for struct user_pt_regs */ |
13 | #include <linux/stringify.h> | 13 | #include <linux/stringify.h> |
14 | #include "util.h" | ||
15 | 14 | ||
16 | struct pt_regs_dwarfnum { | 15 | struct pt_regs_dwarfnum { |
17 | const char *name; | 16 | const char *name; |
diff --git a/tools/perf/arch/arm64/util/header.c b/tools/perf/arch/arm64/util/header.c index e41defaaa2e6..a32e4b72a98f 100644 --- a/tools/perf/arch/arm64/util/header.c +++ b/tools/perf/arch/arm64/util/header.c | |||
@@ -1,5 +1,7 @@ | |||
1 | #include <stdio.h> | 1 | #include <stdio.h> |
2 | #include <stdlib.h> | 2 | #include <stdlib.h> |
3 | #include <perf/cpumap.h> | ||
4 | #include <internal/cpumap.h> | ||
3 | #include <api/fs/fs.h> | 5 | #include <api/fs/fs.h> |
4 | #include "debug.h" | 6 | #include "debug.h" |
5 | #include "header.h" | 7 | #include "header.h" |
@@ -29,7 +31,7 @@ char *get_cpuid_str(struct perf_pmu *pmu) | |||
29 | 31 | ||
30 | /* read midr from list of cpus mapped to this pmu */ | 32 | /* read midr from list of cpus mapped to this pmu */ |
31 | cpus = perf_cpu_map__get(pmu->cpus); | 33 | cpus = perf_cpu_map__get(pmu->cpus); |
32 | for (cpu = 0; cpu < cpus->nr; cpu++) { | 34 | for (cpu = 0; cpu < perf_cpu_map__nr(cpus); cpu++) { |
33 | scnprintf(path, PATH_MAX, "%s/devices/system/cpu/cpu%d"MIDR, | 35 | scnprintf(path, PATH_MAX, "%s/devices/system/cpu/cpu%d"MIDR, |
34 | sysfs, cpus->map[cpu]); | 36 | sysfs, cpus->map[cpu]); |
35 | 37 | ||
diff --git a/tools/perf/arch/arm64/util/unwind-libunwind.c b/tools/perf/arch/arm64/util/unwind-libunwind.c index 002520d4036b..1495a9523a23 100644 --- a/tools/perf/arch/arm64/util/unwind-libunwind.c +++ b/tools/perf/arch/arm64/util/unwind-libunwind.c | |||
@@ -5,8 +5,8 @@ | |||
5 | #include <libunwind.h> | 5 | #include <libunwind.h> |
6 | #include "perf_regs.h" | 6 | #include "perf_regs.h" |
7 | #include "../../util/unwind.h" | 7 | #include "../../util/unwind.h" |
8 | #include "../../util/debug.h" | ||
9 | #endif | 8 | #endif |
9 | #include "../../util/debug.h" | ||
10 | 10 | ||
11 | int LIBUNWIND__ARCH_REG_ID(int regnum) | 11 | int LIBUNWIND__ARCH_REG_ID(int regnum) |
12 | { | 12 | { |
diff --git a/tools/perf/arch/powerpc/util/dwarf-regs.c b/tools/perf/arch/powerpc/util/dwarf-regs.c index 4952890b9428..0c4f4caf53ac 100644 --- a/tools/perf/arch/powerpc/util/dwarf-regs.c +++ b/tools/perf/arch/powerpc/util/dwarf-regs.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/ptrace.h> | 12 | #include <linux/ptrace.h> |
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/stringify.h> | 14 | #include <linux/stringify.h> |
15 | #include "util.h" | ||
16 | 15 | ||
17 | struct pt_regs_dwarfnum { | 16 | struct pt_regs_dwarfnum { |
18 | const char *name; | 17 | const char *name; |
diff --git a/tools/perf/arch/powerpc/util/header.c b/tools/perf/arch/powerpc/util/header.c index 0b242664f5ea..b6b7bc7e31a1 100644 --- a/tools/perf/arch/powerpc/util/header.c +++ b/tools/perf/arch/powerpc/util/header.c | |||
@@ -6,7 +6,6 @@ | |||
6 | #include <string.h> | 6 | #include <string.h> |
7 | #include <linux/stringify.h> | 7 | #include <linux/stringify.h> |
8 | #include "header.h" | 8 | #include "header.h" |
9 | #include "util.h" | ||
10 | 9 | ||
11 | #define mfspr(rn) ({unsigned long rval; \ | 10 | #define mfspr(rn) ({unsigned long rval; \ |
12 | asm volatile("mfspr %0," __stringify(rn) \ | 11 | asm volatile("mfspr %0," __stringify(rn) \ |
diff --git a/tools/perf/arch/powerpc/util/kvm-stat.c b/tools/perf/arch/powerpc/util/kvm-stat.c index f0dbf7b075c8..9cc1c4a9dec4 100644 --- a/tools/perf/arch/powerpc/util/kvm-stat.c +++ b/tools/perf/arch/powerpc/util/kvm-stat.c | |||
@@ -5,9 +5,11 @@ | |||
5 | #include "util/debug.h" | 5 | #include "util/debug.h" |
6 | #include "util/evsel.h" | 6 | #include "util/evsel.h" |
7 | #include "util/evlist.h" | 7 | #include "util/evlist.h" |
8 | #include "util/pmu.h" | ||
8 | 9 | ||
9 | #include "book3s_hv_exits.h" | 10 | #include "book3s_hv_exits.h" |
10 | #include "book3s_hcalls.h" | 11 | #include "book3s_hcalls.h" |
12 | #include <subcmd/parse-options.h> | ||
11 | 13 | ||
12 | #define NR_TPS 4 | 14 | #define NR_TPS 4 |
13 | 15 | ||
@@ -172,3 +174,46 @@ int cpu_isa_init(struct perf_kvm_stat *kvm, const char *cpuid __maybe_unused) | |||
172 | 174 | ||
173 | return ret; | 175 | return ret; |
174 | } | 176 | } |
177 | |||
178 | /* | ||
179 | * Incase of powerpc architecture, pmu registers are programmable | ||
180 | * by guest kernel. So monitoring guest via host may not provide | ||
181 | * valid samples with default 'cycles' event. It is better to use | ||
182 | * 'trace_imc/trace_cycles' event for guest profiling, since it | ||
183 | * can track the guest instruction pointer in the trace-record. | ||
184 | * | ||
185 | * Function to parse the arguments and return appropriate values. | ||
186 | */ | ||
187 | int kvm_add_default_arch_event(int *argc, const char **argv) | ||
188 | { | ||
189 | const char **tmp; | ||
190 | bool event = false; | ||
191 | int i, j = *argc; | ||
192 | |||
193 | const struct option event_options[] = { | ||
194 | OPT_BOOLEAN('e', "event", &event, NULL), | ||
195 | OPT_END() | ||
196 | }; | ||
197 | |||
198 | tmp = calloc(j + 1, sizeof(char *)); | ||
199 | if (!tmp) | ||
200 | return -EINVAL; | ||
201 | |||
202 | for (i = 0; i < j; i++) | ||
203 | tmp[i] = argv[i]; | ||
204 | |||
205 | parse_options(j, tmp, event_options, NULL, PARSE_OPT_KEEP_UNKNOWN); | ||
206 | if (!event) { | ||
207 | if (pmu_have_event("trace_imc", "trace_cycles")) { | ||
208 | argv[j++] = strdup("-e"); | ||
209 | argv[j++] = strdup("trace_imc/trace_cycles/"); | ||
210 | *argc += 2; | ||
211 | } else { | ||
212 | free(tmp); | ||
213 | return -EINVAL; | ||
214 | } | ||
215 | } | ||
216 | |||
217 | free(tmp); | ||
218 | return 0; | ||
219 | } | ||
diff --git a/tools/perf/arch/powerpc/util/skip-callchain-idx.c b/tools/perf/arch/powerpc/util/skip-callchain-idx.c index fc9c2f5fcd52..3018a054526a 100644 --- a/tools/perf/arch/powerpc/util/skip-callchain-idx.c +++ b/tools/perf/arch/powerpc/util/skip-callchain-idx.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include "util/callchain.h" | 13 | #include "util/callchain.h" |
14 | #include "util/debug.h" | 14 | #include "util/debug.h" |
15 | #include "util/dso.h" | 15 | #include "util/dso.h" |
16 | #include "util/event.h" // struct ip_callchain | ||
16 | #include "util/map.h" | 17 | #include "util/map.h" |
17 | #include "util/symbol.h" | 18 | #include "util/symbol.h" |
18 | 19 | ||
diff --git a/tools/perf/arch/powerpc/util/sym-handling.c b/tools/perf/arch/powerpc/util/sym-handling.c index 8a4b717e0a53..abb7a12d8f93 100644 --- a/tools/perf/arch/powerpc/util/sym-handling.c +++ b/tools/perf/arch/powerpc/util/sym-handling.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 2015 Naveen N. Rao, IBM Corporation | 4 | * Copyright (C) 2015 Naveen N. Rao, IBM Corporation |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include "debug.h" | ||
8 | #include "dso.h" | 7 | #include "dso.h" |
9 | #include "symbol.h" | 8 | #include "symbol.h" |
10 | #include "map.h" | 9 | #include "map.h" |
diff --git a/tools/perf/arch/s390/util/machine.c b/tools/perf/arch/s390/util/machine.c index c8c86a0c9b79..df099d6cc3f5 100644 --- a/tools/perf/arch/s390/util/machine.c +++ b/tools/perf/arch/s390/util/machine.c | |||
@@ -2,7 +2,7 @@ | |||
2 | #include <unistd.h> | 2 | #include <unistd.h> |
3 | #include <stdio.h> | 3 | #include <stdio.h> |
4 | #include <string.h> | 4 | #include <string.h> |
5 | #include "util.h" | 5 | #include "util.h" // page_size |
6 | #include "machine.h" | 6 | #include "machine.h" |
7 | #include "api/fs/fs.h" | 7 | #include "api/fs/fs.h" |
8 | #include "debug.h" | 8 | #include "debug.h" |
diff --git a/tools/perf/arch/x86/tests/intel-cqm.c b/tools/perf/arch/x86/tests/intel-cqm.c index 3b5cc3373821..111c0ab2e7b5 100644 --- a/tools/perf/arch/x86/tests/intel-cqm.c +++ b/tools/perf/arch/x86/tests/intel-cqm.c | |||
@@ -5,7 +5,6 @@ | |||
5 | #include "evlist.h" | 5 | #include "evlist.h" |
6 | #include "evsel.h" | 6 | #include "evsel.h" |
7 | #include "arch-tests.h" | 7 | #include "arch-tests.h" |
8 | #include "util.h" | ||
9 | 8 | ||
10 | #include <signal.h> | 9 | #include <signal.h> |
11 | #include <sys/mman.h> | 10 | #include <sys/mman.h> |
diff --git a/tools/perf/arch/x86/tests/perf-time-to-tsc.c b/tools/perf/arch/x86/tests/perf-time-to-tsc.c index eb3635941c2b..0a4570b340fa 100644 --- a/tools/perf/arch/x86/tests/perf-time-to-tsc.c +++ b/tools/perf/arch/x86/tests/perf-time-to-tsc.c | |||
@@ -15,7 +15,6 @@ | |||
15 | #include "evlist.h" | 15 | #include "evlist.h" |
16 | #include "evsel.h" | 16 | #include "evsel.h" |
17 | #include "thread_map.h" | 17 | #include "thread_map.h" |
18 | #include "cpumap.h" | ||
19 | #include "record.h" | 18 | #include "record.h" |
20 | #include "tsc.h" | 19 | #include "tsc.h" |
21 | #include "tests/tests.h" | 20 | #include "tests/tests.h" |
diff --git a/tools/perf/arch/x86/tests/rdpmc.c b/tools/perf/arch/x86/tests/rdpmc.c index 6e67cee792b1..e7640fb047de 100644 --- a/tools/perf/arch/x86/tests/rdpmc.c +++ b/tools/perf/arch/x86/tests/rdpmc.c | |||
@@ -13,7 +13,7 @@ | |||
13 | #include "tests/tests.h" | 13 | #include "tests/tests.h" |
14 | #include "cloexec.h" | 14 | #include "cloexec.h" |
15 | #include "event.h" | 15 | #include "event.h" |
16 | #include "util.h" | 16 | #include "util.h" // page_size |
17 | #include "arch-tests.h" | 17 | #include "arch-tests.h" |
18 | 18 | ||
19 | static u64 rdpmc(unsigned int counter) | 19 | static u64 rdpmc(unsigned int counter) |
diff --git a/tools/perf/arch/x86/util/archinsn.c b/tools/perf/arch/x86/util/archinsn.c index 9876c7a7ed7c..3e6791531ca5 100644 --- a/tools/perf/arch/x86/util/archinsn.c +++ b/tools/perf/arch/x86/util/archinsn.c | |||
@@ -1,6 +1,7 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
2 | #include "../../../../arch/x86/include/asm/insn.h" | 2 | #include "../../../../arch/x86/include/asm/insn.h" |
3 | #include "archinsn.h" | 3 | #include "archinsn.h" |
4 | #include "event.h" | ||
4 | #include "machine.h" | 5 | #include "machine.h" |
5 | #include "thread.h" | 6 | #include "thread.h" |
6 | #include "symbol.h" | 7 | #include "symbol.h" |
diff --git a/tools/perf/arch/x86/util/event.c b/tools/perf/arch/x86/util/event.c index a3a0b6884779..d357c625c09f 100644 --- a/tools/perf/arch/x86/util/event.c +++ b/tools/perf/arch/x86/util/event.c | |||
@@ -3,6 +3,8 @@ | |||
3 | #include <linux/string.h> | 3 | #include <linux/string.h> |
4 | #include <linux/zalloc.h> | 4 | #include <linux/zalloc.h> |
5 | 5 | ||
6 | #include "../../util/event.h" | ||
7 | #include "../../util/synthetic-events.h" | ||
6 | #include "../../util/machine.h" | 8 | #include "../../util/machine.h" |
7 | #include "../../util/tool.h" | 9 | #include "../../util/tool.h" |
8 | #include "../../util/map.h" | 10 | #include "../../util/map.h" |
diff --git a/tools/perf/arch/x86/util/intel-bts.c b/tools/perf/arch/x86/util/intel-bts.c index d263430c045f..090d90e093df 100644 --- a/tools/perf/arch/x86/util/intel-bts.c +++ b/tools/perf/arch/x86/util/intel-bts.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include "../../util/tsc.h" | 22 | #include "../../util/tsc.h" |
23 | #include "../../util/auxtrace.h" | 23 | #include "../../util/auxtrace.h" |
24 | #include "../../util/intel-bts.h" | 24 | #include "../../util/intel-bts.h" |
25 | #include "../../util/util.h" | 25 | #include "../../util/util.h" // page_size |
26 | 26 | ||
27 | #define KiB(x) ((x) * 1024) | 27 | #define KiB(x) ((x) * 1024) |
28 | #define MiB(x) ((x) * 1024 * 1024) | 28 | #define MiB(x) ((x) * 1024 * 1024) |
diff --git a/tools/perf/arch/x86/util/intel-pt.c b/tools/perf/arch/x86/util/intel-pt.c index cb7cf16af79c..3d041b89f018 100644 --- a/tools/perf/arch/x86/util/intel-pt.c +++ b/tools/perf/arch/x86/util/intel-pt.c | |||
@@ -26,7 +26,7 @@ | |||
26 | #include "../../util/record.h" | 26 | #include "../../util/record.h" |
27 | #include "../../util/target.h" | 27 | #include "../../util/target.h" |
28 | #include "../../util/tsc.h" | 28 | #include "../../util/tsc.h" |
29 | #include "../../util/util.h" | 29 | #include "../../util/util.h" // page_size |
30 | #include "../../util/intel-pt.h" | 30 | #include "../../util/intel-pt.h" |
31 | 31 | ||
32 | #define KiB(x) ((x) * 1024) | 32 | #define KiB(x) ((x) * 1024) |
diff --git a/tools/perf/arch/x86/util/machine.c b/tools/perf/arch/x86/util/machine.c index 1e9ec783b9a1..f0c289862f9f 100644 --- a/tools/perf/arch/x86/util/machine.c +++ b/tools/perf/arch/x86/util/machine.c | |||
@@ -1,9 +1,10 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | 1 | // SPDX-License-Identifier: GPL-2.0 |
2 | #include <linux/types.h> | 2 | #include <linux/types.h> |
3 | #include <linux/string.h> | 3 | #include <linux/string.h> |
4 | #include <limits.h> | ||
4 | #include <stdlib.h> | 5 | #include <stdlib.h> |
5 | 6 | ||
6 | #include "../../util/util.h" | 7 | #include "../../util/util.h" // page_size |
7 | #include "../../util/machine.h" | 8 | #include "../../util/machine.h" |
8 | #include "../../util/map.h" | 9 | #include "../../util/map.h" |
9 | #include "../../util/symbol.h" | 10 | #include "../../util/symbol.h" |
diff --git a/tools/perf/arch/x86/util/tsc.c b/tools/perf/arch/x86/util/tsc.c index c5197a15119b..2f55afb14e1f 100644 --- a/tools/perf/arch/x86/util/tsc.c +++ b/tools/perf/arch/x86/util/tsc.c | |||
@@ -8,6 +8,8 @@ | |||
8 | #include <linux/types.h> | 8 | #include <linux/types.h> |
9 | #include <asm/barrier.h> | 9 | #include <asm/barrier.h> |
10 | #include "../../../util/debug.h" | 10 | #include "../../../util/debug.h" |
11 | #include "../../../util/event.h" | ||
12 | #include "../../../util/synthetic-events.h" | ||
11 | #include "../../../util/tsc.h" | 13 | #include "../../../util/tsc.h" |
12 | 14 | ||
13 | int perf_read_tsc_conversion(const struct perf_event_mmap_page *pc, | 15 | int perf_read_tsc_conversion(const struct perf_event_mmap_page *pc, |