diff options
| -rw-r--r-- | tools/arch/x86/include/uapi/asm/kvm.h | 1 | ||||
| -rw-r--r-- | tools/include/uapi/linux/kvm.h | 1 | ||||
| -rw-r--r-- | tools/lib/api/fs/tracing_path.c | 4 | ||||
| -rw-r--r-- | tools/perf/Makefile.config | 2 | ||||
| -rw-r--r-- | tools/perf/Makefile.perf | 2 | ||||
| -rw-r--r-- | tools/perf/builtin-report.c | 1 | ||||
| -rw-r--r-- | tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json | 16 | ||||
| -rw-r--r-- | tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json | 16 | ||||
| -rw-r--r-- | tools/perf/util/event.c | 22 | ||||
| -rw-r--r-- | tools/perf/util/evsel.c | 3 | ||||
| -rw-r--r-- | tools/perf/util/pmu.c | 13 | ||||
| -rw-r--r-- | tools/perf/util/srcline.c | 3 |
12 files changed, 39 insertions, 45 deletions
diff --git a/tools/arch/x86/include/uapi/asm/kvm.h b/tools/arch/x86/include/uapi/asm/kvm.h index 86299efa804a..fd23d5778ea1 100644 --- a/tools/arch/x86/include/uapi/asm/kvm.h +++ b/tools/arch/x86/include/uapi/asm/kvm.h | |||
| @@ -377,6 +377,7 @@ struct kvm_sync_regs { | |||
| 377 | 377 | ||
| 378 | #define KVM_X86_QUIRK_LINT0_REENABLED (1 << 0) | 378 | #define KVM_X86_QUIRK_LINT0_REENABLED (1 << 0) |
| 379 | #define KVM_X86_QUIRK_CD_NW_CLEARED (1 << 1) | 379 | #define KVM_X86_QUIRK_CD_NW_CLEARED (1 << 1) |
| 380 | #define KVM_X86_QUIRK_LAPIC_MMIO_HOLE (1 << 2) | ||
| 380 | 381 | ||
| 381 | #define KVM_STATE_NESTED_GUEST_MODE 0x00000001 | 382 | #define KVM_STATE_NESTED_GUEST_MODE 0x00000001 |
| 382 | #define KVM_STATE_NESTED_RUN_PENDING 0x00000002 | 383 | #define KVM_STATE_NESTED_RUN_PENDING 0x00000002 |
diff --git a/tools/include/uapi/linux/kvm.h b/tools/include/uapi/linux/kvm.h index 07548de5c988..251be353f950 100644 --- a/tools/include/uapi/linux/kvm.h +++ b/tools/include/uapi/linux/kvm.h | |||
| @@ -952,6 +952,7 @@ struct kvm_ppc_resize_hpt { | |||
| 952 | #define KVM_CAP_S390_HPAGE_1M 156 | 952 | #define KVM_CAP_S390_HPAGE_1M 156 |
| 953 | #define KVM_CAP_NESTED_STATE 157 | 953 | #define KVM_CAP_NESTED_STATE 157 |
| 954 | #define KVM_CAP_ARM_INJECT_SERROR_ESR 158 | 954 | #define KVM_CAP_ARM_INJECT_SERROR_ESR 158 |
| 955 | #define KVM_CAP_MSR_PLATFORM_INFO 159 | ||
| 955 | 956 | ||
| 956 | #ifdef KVM_CAP_IRQ_ROUTING | 957 | #ifdef KVM_CAP_IRQ_ROUTING |
| 957 | 958 | ||
diff --git a/tools/lib/api/fs/tracing_path.c b/tools/lib/api/fs/tracing_path.c index 120037496f77..5afb11b30fca 100644 --- a/tools/lib/api/fs/tracing_path.c +++ b/tools/lib/api/fs/tracing_path.c | |||
| @@ -36,7 +36,7 @@ static const char *tracing_path_tracefs_mount(void) | |||
| 36 | 36 | ||
| 37 | __tracing_path_set("", mnt); | 37 | __tracing_path_set("", mnt); |
| 38 | 38 | ||
| 39 | return mnt; | 39 | return tracing_path; |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | static const char *tracing_path_debugfs_mount(void) | 42 | static const char *tracing_path_debugfs_mount(void) |
| @@ -49,7 +49,7 @@ static const char *tracing_path_debugfs_mount(void) | |||
| 49 | 49 | ||
| 50 | __tracing_path_set("tracing/", mnt); | 50 | __tracing_path_set("tracing/", mnt); |
| 51 | 51 | ||
| 52 | return mnt; | 52 | return tracing_path; |
| 53 | } | 53 | } |
| 54 | 54 | ||
| 55 | const char *tracing_path_mount(void) | 55 | const char *tracing_path_mount(void) |
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config index f6d1a03c7523..e30d20fb482d 100644 --- a/tools/perf/Makefile.config +++ b/tools/perf/Makefile.config | |||
| @@ -833,7 +833,7 @@ ifndef NO_JVMTI | |||
| 833 | JDIR=$(shell /usr/sbin/update-java-alternatives -l | head -1 | awk '{print $$3}') | 833 | JDIR=$(shell /usr/sbin/update-java-alternatives -l | head -1 | awk '{print $$3}') |
| 834 | else | 834 | else |
| 835 | ifneq (,$(wildcard /usr/sbin/alternatives)) | 835 | ifneq (,$(wildcard /usr/sbin/alternatives)) |
| 836 | JDIR=$(shell alternatives --display java | tail -1 | cut -d' ' -f 5 | sed 's%/jre/bin/java.%%g') | 836 | JDIR=$(shell /usr/sbin/alternatives --display java | tail -1 | cut -d' ' -f 5 | sed 's%/jre/bin/java.%%g') |
| 837 | endif | 837 | endif |
| 838 | endif | 838 | endif |
| 839 | ifndef JDIR | 839 | ifndef JDIR |
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf index 5224ade3d5af..0be411695379 100644 --- a/tools/perf/Makefile.perf +++ b/tools/perf/Makefile.perf | |||
| @@ -635,7 +635,7 @@ $(LIBPERF_IN): prepare FORCE | |||
| 635 | $(LIB_FILE): $(LIBPERF_IN) | 635 | $(LIB_FILE): $(LIBPERF_IN) |
| 636 | $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIBPERF_IN) $(LIB_OBJS) | 636 | $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIBPERF_IN) $(LIB_OBJS) |
| 637 | 637 | ||
| 638 | LIBTRACEEVENT_FLAGS += plugin_dir=$(plugindir_SQ) | 638 | LIBTRACEEVENT_FLAGS += plugin_dir=$(plugindir_SQ) 'EXTRA_CFLAGS=$(EXTRA_CFLAGS)' 'LDFLAGS=$(LDFLAGS)' |
| 639 | 639 | ||
| 640 | $(LIBTRACEEVENT): FORCE | 640 | $(LIBTRACEEVENT): FORCE |
| 641 | $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) $(OUTPUT)libtraceevent.a | 641 | $(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) $(OUTPUT)libtraceevent.a |
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 76e12bcd1765..b2188e623e22 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c | |||
| @@ -981,6 +981,7 @@ int cmd_report(int argc, const char **argv) | |||
| 981 | .id_index = perf_event__process_id_index, | 981 | .id_index = perf_event__process_id_index, |
| 982 | .auxtrace_info = perf_event__process_auxtrace_info, | 982 | .auxtrace_info = perf_event__process_auxtrace_info, |
| 983 | .auxtrace = perf_event__process_auxtrace, | 983 | .auxtrace = perf_event__process_auxtrace, |
| 984 | .event_update = perf_event__process_event_update, | ||
| 984 | .feature = process_feature_event, | 985 | .feature = process_feature_event, |
| 985 | .ordered_events = true, | 986 | .ordered_events = true, |
| 986 | .ordering_requires_timestamps = true, | 987 | .ordering_requires_timestamps = true, |
diff --git a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json index d40498f2cb1e..635c09fda1d9 100644 --- a/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json +++ b/tools/perf/pmu-events/arch/x86/ivytown/uncore-power.json | |||
| @@ -188,7 +188,7 @@ | |||
| 188 | "Counter": "0,1,2,3", | 188 | "Counter": "0,1,2,3", |
| 189 | "EventCode": "0xb", | 189 | "EventCode": "0xb", |
| 190 | "EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES", | 190 | "EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES", |
| 191 | "Filter": "filter_band0=1200", | 191 | "Filter": "filter_band0=12", |
| 192 | "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 192 | "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 193 | "MetricName": "freq_ge_1200mhz_cycles %", | 193 | "MetricName": "freq_ge_1200mhz_cycles %", |
| 194 | "PerPkg": "1", | 194 | "PerPkg": "1", |
| @@ -199,7 +199,7 @@ | |||
| 199 | "Counter": "0,1,2,3", | 199 | "Counter": "0,1,2,3", |
| 200 | "EventCode": "0xc", | 200 | "EventCode": "0xc", |
| 201 | "EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES", | 201 | "EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES", |
| 202 | "Filter": "filter_band1=2000", | 202 | "Filter": "filter_band1=20", |
| 203 | "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 203 | "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 204 | "MetricName": "freq_ge_2000mhz_cycles %", | 204 | "MetricName": "freq_ge_2000mhz_cycles %", |
| 205 | "PerPkg": "1", | 205 | "PerPkg": "1", |
| @@ -210,7 +210,7 @@ | |||
| 210 | "Counter": "0,1,2,3", | 210 | "Counter": "0,1,2,3", |
| 211 | "EventCode": "0xd", | 211 | "EventCode": "0xd", |
| 212 | "EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES", | 212 | "EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES", |
| 213 | "Filter": "filter_band2=3000", | 213 | "Filter": "filter_band2=30", |
| 214 | "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 214 | "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 215 | "MetricName": "freq_ge_3000mhz_cycles %", | 215 | "MetricName": "freq_ge_3000mhz_cycles %", |
| 216 | "PerPkg": "1", | 216 | "PerPkg": "1", |
| @@ -221,7 +221,7 @@ | |||
| 221 | "Counter": "0,1,2,3", | 221 | "Counter": "0,1,2,3", |
| 222 | "EventCode": "0xe", | 222 | "EventCode": "0xe", |
| 223 | "EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES", | 223 | "EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES", |
| 224 | "Filter": "filter_band3=4000", | 224 | "Filter": "filter_band3=40", |
| 225 | "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 225 | "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 226 | "MetricName": "freq_ge_4000mhz_cycles %", | 226 | "MetricName": "freq_ge_4000mhz_cycles %", |
| 227 | "PerPkg": "1", | 227 | "PerPkg": "1", |
| @@ -232,7 +232,7 @@ | |||
| 232 | "Counter": "0,1,2,3", | 232 | "Counter": "0,1,2,3", |
| 233 | "EventCode": "0xb", | 233 | "EventCode": "0xb", |
| 234 | "EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS", | 234 | "EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS", |
| 235 | "Filter": "edge=1,filter_band0=1200", | 235 | "Filter": "edge=1,filter_band0=12", |
| 236 | "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 236 | "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 237 | "MetricName": "freq_ge_1200mhz_cycles %", | 237 | "MetricName": "freq_ge_1200mhz_cycles %", |
| 238 | "PerPkg": "1", | 238 | "PerPkg": "1", |
| @@ -243,7 +243,7 @@ | |||
| 243 | "Counter": "0,1,2,3", | 243 | "Counter": "0,1,2,3", |
| 244 | "EventCode": "0xc", | 244 | "EventCode": "0xc", |
| 245 | "EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS", | 245 | "EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS", |
| 246 | "Filter": "edge=1,filter_band1=2000", | 246 | "Filter": "edge=1,filter_band1=20", |
| 247 | "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 247 | "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 248 | "MetricName": "freq_ge_2000mhz_cycles %", | 248 | "MetricName": "freq_ge_2000mhz_cycles %", |
| 249 | "PerPkg": "1", | 249 | "PerPkg": "1", |
| @@ -254,7 +254,7 @@ | |||
| 254 | "Counter": "0,1,2,3", | 254 | "Counter": "0,1,2,3", |
| 255 | "EventCode": "0xd", | 255 | "EventCode": "0xd", |
| 256 | "EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS", | 256 | "EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS", |
| 257 | "Filter": "edge=1,filter_band2=4000", | 257 | "Filter": "edge=1,filter_band2=30", |
| 258 | "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 258 | "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 259 | "MetricName": "freq_ge_3000mhz_cycles %", | 259 | "MetricName": "freq_ge_3000mhz_cycles %", |
| 260 | "PerPkg": "1", | 260 | "PerPkg": "1", |
| @@ -265,7 +265,7 @@ | |||
| 265 | "Counter": "0,1,2,3", | 265 | "Counter": "0,1,2,3", |
| 266 | "EventCode": "0xe", | 266 | "EventCode": "0xe", |
| 267 | "EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS", | 267 | "EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS", |
| 268 | "Filter": "edge=1,filter_band3=4000", | 268 | "Filter": "edge=1,filter_band3=40", |
| 269 | "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 269 | "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 270 | "MetricName": "freq_ge_4000mhz_cycles %", | 270 | "MetricName": "freq_ge_4000mhz_cycles %", |
| 271 | "PerPkg": "1", | 271 | "PerPkg": "1", |
diff --git a/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json b/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json index 16034bfd06dd..8755693d86c6 100644 --- a/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json +++ b/tools/perf/pmu-events/arch/x86/jaketown/uncore-power.json | |||
| @@ -187,7 +187,7 @@ | |||
| 187 | "Counter": "0,1,2,3", | 187 | "Counter": "0,1,2,3", |
| 188 | "EventCode": "0xb", | 188 | "EventCode": "0xb", |
| 189 | "EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES", | 189 | "EventName": "UNC_P_FREQ_GE_1200MHZ_CYCLES", |
| 190 | "Filter": "filter_band0=1200", | 190 | "Filter": "filter_band0=12", |
| 191 | "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 191 | "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 192 | "MetricName": "freq_ge_1200mhz_cycles %", | 192 | "MetricName": "freq_ge_1200mhz_cycles %", |
| 193 | "PerPkg": "1", | 193 | "PerPkg": "1", |
| @@ -198,7 +198,7 @@ | |||
| 198 | "Counter": "0,1,2,3", | 198 | "Counter": "0,1,2,3", |
| 199 | "EventCode": "0xc", | 199 | "EventCode": "0xc", |
| 200 | "EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES", | 200 | "EventName": "UNC_P_FREQ_GE_2000MHZ_CYCLES", |
| 201 | "Filter": "filter_band1=2000", | 201 | "Filter": "filter_band1=20", |
| 202 | "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 202 | "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 203 | "MetricName": "freq_ge_2000mhz_cycles %", | 203 | "MetricName": "freq_ge_2000mhz_cycles %", |
| 204 | "PerPkg": "1", | 204 | "PerPkg": "1", |
| @@ -209,7 +209,7 @@ | |||
| 209 | "Counter": "0,1,2,3", | 209 | "Counter": "0,1,2,3", |
| 210 | "EventCode": "0xd", | 210 | "EventCode": "0xd", |
| 211 | "EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES", | 211 | "EventName": "UNC_P_FREQ_GE_3000MHZ_CYCLES", |
| 212 | "Filter": "filter_band2=3000", | 212 | "Filter": "filter_band2=30", |
| 213 | "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 213 | "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 214 | "MetricName": "freq_ge_3000mhz_cycles %", | 214 | "MetricName": "freq_ge_3000mhz_cycles %", |
| 215 | "PerPkg": "1", | 215 | "PerPkg": "1", |
| @@ -220,7 +220,7 @@ | |||
| 220 | "Counter": "0,1,2,3", | 220 | "Counter": "0,1,2,3", |
| 221 | "EventCode": "0xe", | 221 | "EventCode": "0xe", |
| 222 | "EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES", | 222 | "EventName": "UNC_P_FREQ_GE_4000MHZ_CYCLES", |
| 223 | "Filter": "filter_band3=4000", | 223 | "Filter": "filter_band3=40", |
| 224 | "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 224 | "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 225 | "MetricName": "freq_ge_4000mhz_cycles %", | 225 | "MetricName": "freq_ge_4000mhz_cycles %", |
| 226 | "PerPkg": "1", | 226 | "PerPkg": "1", |
| @@ -231,7 +231,7 @@ | |||
| 231 | "Counter": "0,1,2,3", | 231 | "Counter": "0,1,2,3", |
| 232 | "EventCode": "0xb", | 232 | "EventCode": "0xb", |
| 233 | "EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS", | 233 | "EventName": "UNC_P_FREQ_GE_1200MHZ_TRANSITIONS", |
| 234 | "Filter": "edge=1,filter_band0=1200", | 234 | "Filter": "edge=1,filter_band0=12", |
| 235 | "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 235 | "MetricExpr": "(UNC_P_FREQ_GE_1200MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 236 | "MetricName": "freq_ge_1200mhz_cycles %", | 236 | "MetricName": "freq_ge_1200mhz_cycles %", |
| 237 | "PerPkg": "1", | 237 | "PerPkg": "1", |
| @@ -242,7 +242,7 @@ | |||
| 242 | "Counter": "0,1,2,3", | 242 | "Counter": "0,1,2,3", |
| 243 | "EventCode": "0xc", | 243 | "EventCode": "0xc", |
| 244 | "EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS", | 244 | "EventName": "UNC_P_FREQ_GE_2000MHZ_TRANSITIONS", |
| 245 | "Filter": "edge=1,filter_band1=2000", | 245 | "Filter": "edge=1,filter_band1=20", |
| 246 | "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 246 | "MetricExpr": "(UNC_P_FREQ_GE_2000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 247 | "MetricName": "freq_ge_2000mhz_cycles %", | 247 | "MetricName": "freq_ge_2000mhz_cycles %", |
| 248 | "PerPkg": "1", | 248 | "PerPkg": "1", |
| @@ -253,7 +253,7 @@ | |||
| 253 | "Counter": "0,1,2,3", | 253 | "Counter": "0,1,2,3", |
| 254 | "EventCode": "0xd", | 254 | "EventCode": "0xd", |
| 255 | "EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS", | 255 | "EventName": "UNC_P_FREQ_GE_3000MHZ_TRANSITIONS", |
| 256 | "Filter": "edge=1,filter_band2=4000", | 256 | "Filter": "edge=1,filter_band2=30", |
| 257 | "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 257 | "MetricExpr": "(UNC_P_FREQ_GE_3000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 258 | "MetricName": "freq_ge_3000mhz_cycles %", | 258 | "MetricName": "freq_ge_3000mhz_cycles %", |
| 259 | "PerPkg": "1", | 259 | "PerPkg": "1", |
| @@ -264,7 +264,7 @@ | |||
| 264 | "Counter": "0,1,2,3", | 264 | "Counter": "0,1,2,3", |
| 265 | "EventCode": "0xe", | 265 | "EventCode": "0xe", |
| 266 | "EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS", | 266 | "EventName": "UNC_P_FREQ_GE_4000MHZ_TRANSITIONS", |
| 267 | "Filter": "edge=1,filter_band3=4000", | 267 | "Filter": "edge=1,filter_band3=40", |
| 268 | "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", | 268 | "MetricExpr": "(UNC_P_FREQ_GE_4000MHZ_CYCLES / UNC_P_CLOCKTICKS) * 100.", |
| 269 | "MetricName": "freq_ge_4000mhz_cycles %", | 269 | "MetricName": "freq_ge_4000mhz_cycles %", |
| 270 | "PerPkg": "1", | 270 | "PerPkg": "1", |
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c index 0cd42150f712..bc646185f8d9 100644 --- a/tools/perf/util/event.c +++ b/tools/perf/util/event.c | |||
| @@ -1081,6 +1081,7 @@ void *cpu_map_data__alloc(struct cpu_map *map, size_t *size, u16 *type, int *max | |||
| 1081 | } | 1081 | } |
| 1082 | 1082 | ||
| 1083 | *size += sizeof(struct cpu_map_data); | 1083 | *size += sizeof(struct cpu_map_data); |
| 1084 | *size = PERF_ALIGN(*size, sizeof(u64)); | ||
| 1084 | return zalloc(*size); | 1085 | return zalloc(*size); |
| 1085 | } | 1086 | } |
| 1086 | 1087 | ||
| @@ -1560,26 +1561,9 @@ struct map *thread__find_map(struct thread *thread, u8 cpumode, u64 addr, | |||
| 1560 | 1561 | ||
| 1561 | return NULL; | 1562 | return NULL; |
| 1562 | } | 1563 | } |
| 1563 | try_again: | 1564 | |
| 1564 | al->map = map_groups__find(mg, al->addr); | 1565 | al->map = map_groups__find(mg, al->addr); |
| 1565 | if (al->map == NULL) { | 1566 | if (al->map != NULL) { |
| 1566 | /* | ||
| 1567 | * If this is outside of all known maps, and is a negative | ||
| 1568 | * address, try to look it up in the kernel dso, as it might be | ||
| 1569 | * a vsyscall or vdso (which executes in user-mode). | ||
| 1570 | * | ||
| 1571 | * XXX This is nasty, we should have a symbol list in the | ||
| 1572 | * "[vdso]" dso, but for now lets use the old trick of looking | ||
| 1573 | * in the whole kernel symbol list. | ||
| 1574 | */ | ||
| 1575 | if (cpumode == PERF_RECORD_MISC_USER && machine && | ||
| 1576 | mg != &machine->kmaps && | ||
| 1577 | machine__kernel_ip(machine, al->addr)) { | ||
| 1578 | mg = &machine->kmaps; | ||
| 1579 | load_map = true; | ||
| 1580 | goto try_again; | ||
| 1581 | } | ||
| 1582 | } else { | ||
| 1583 | /* | 1567 | /* |
| 1584 | * Kernel maps might be changed when loading symbols so loading | 1568 | * Kernel maps might be changed when loading symbols so loading |
| 1585 | * must be done prior to using kernel maps. | 1569 | * must be done prior to using kernel maps. |
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 1a61628a1c12..e596ae358c4d 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c | |||
| @@ -1089,6 +1089,9 @@ void perf_evsel__config(struct perf_evsel *evsel, struct record_opts *opts, | |||
| 1089 | attr->exclude_user = 1; | 1089 | attr->exclude_user = 1; |
| 1090 | } | 1090 | } |
| 1091 | 1091 | ||
| 1092 | if (evsel->own_cpus) | ||
| 1093 | evsel->attr.read_format |= PERF_FORMAT_ID; | ||
| 1094 | |||
| 1092 | /* | 1095 | /* |
| 1093 | * Apply event specific term settings, | 1096 | * Apply event specific term settings, |
| 1094 | * it overloads any global configuration. | 1097 | * it overloads any global configuration. |
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index afd68524ffa9..7799788f662f 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c | |||
| @@ -930,13 +930,14 @@ static void pmu_format_value(unsigned long *format, __u64 value, __u64 *v, | |||
| 930 | 930 | ||
| 931 | static __u64 pmu_format_max_value(const unsigned long *format) | 931 | static __u64 pmu_format_max_value(const unsigned long *format) |
| 932 | { | 932 | { |
| 933 | __u64 w = 0; | 933 | int w; |
| 934 | int fbit; | ||
| 935 | |||
| 936 | for_each_set_bit(fbit, format, PERF_PMU_FORMAT_BITS) | ||
| 937 | w |= (1ULL << fbit); | ||
| 938 | 934 | ||
| 939 | return w; | 935 | w = bitmap_weight(format, PERF_PMU_FORMAT_BITS); |
| 936 | if (!w) | ||
| 937 | return 0; | ||
| 938 | if (w < 64) | ||
| 939 | return (1ULL << w) - 1; | ||
| 940 | return -1; | ||
| 940 | } | 941 | } |
| 941 | 942 | ||
| 942 | /* | 943 | /* |
diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c index 09d6746e6ec8..e767c4a9d4d2 100644 --- a/tools/perf/util/srcline.c +++ b/tools/perf/util/srcline.c | |||
| @@ -85,6 +85,9 @@ static struct symbol *new_inline_sym(struct dso *dso, | |||
| 85 | struct symbol *inline_sym; | 85 | struct symbol *inline_sym; |
| 86 | char *demangled = NULL; | 86 | char *demangled = NULL; |
| 87 | 87 | ||
| 88 | if (!funcname) | ||
| 89 | funcname = "??"; | ||
| 90 | |||
| 88 | if (dso) { | 91 | if (dso) { |
| 89 | demangled = dso__demangle_sym(dso, 0, funcname); | 92 | demangled = dso__demangle_sym(dso, 0, funcname); |
| 90 | if (demangled) | 93 | if (demangled) |
