diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-06-25 14:55:21 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-06-25 14:55:21 -0400 |
| commit | 35d8d5d47c0ef066197f629f71cdd6039693b86d (patch) | |
| tree | 0156f16eed2f2f91b8b9f65143503ec0efdb1926 | |
| parent | 1a8cca1880e6127a22cf6604b3c4ccd8b27cbf65 (diff) | |
| parent | 977282ed17a0213c84d59498a1e3f7088e211470 (diff) | |
Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fixes from Thomas Gleixner:
"Three fixlets for perf:
- Return the proper error code if aux buffers for a event are not
supported.
- Calculate the probe offset for inlined functions correctly
- Update the Skylake DTLB load/store miss event so it can count 1G
TLB entries as well"
* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf probe: Fix probe definition for inlined functions
perf/x86/intel: Add 1G DTLB load/store miss support for SKL
perf/aux: Correct return code of rb_alloc_aux() if !has_aux(ev)
| -rw-r--r-- | arch/x86/events/intel/core.c | 4 | ||||
| -rw-r--r-- | kernel/events/ring_buffer.c | 2 | ||||
| -rw-r--r-- | tools/perf/util/probe-event.c | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c index a6d91d4e37a1..110ce8238466 100644 --- a/arch/x86/events/intel/core.c +++ b/arch/x86/events/intel/core.c | |||
| @@ -431,11 +431,11 @@ static __initconst const u64 skl_hw_cache_event_ids | |||
| 431 | [ C(DTLB) ] = { | 431 | [ C(DTLB) ] = { |
| 432 | [ C(OP_READ) ] = { | 432 | [ C(OP_READ) ] = { |
| 433 | [ C(RESULT_ACCESS) ] = 0x81d0, /* MEM_INST_RETIRED.ALL_LOADS */ | 433 | [ C(RESULT_ACCESS) ] = 0x81d0, /* MEM_INST_RETIRED.ALL_LOADS */ |
| 434 | [ C(RESULT_MISS) ] = 0x608, /* DTLB_LOAD_MISSES.WALK_COMPLETED */ | 434 | [ C(RESULT_MISS) ] = 0xe08, /* DTLB_LOAD_MISSES.WALK_COMPLETED */ |
| 435 | }, | 435 | }, |
| 436 | [ C(OP_WRITE) ] = { | 436 | [ C(OP_WRITE) ] = { |
| 437 | [ C(RESULT_ACCESS) ] = 0x82d0, /* MEM_INST_RETIRED.ALL_STORES */ | 437 | [ C(RESULT_ACCESS) ] = 0x82d0, /* MEM_INST_RETIRED.ALL_STORES */ |
| 438 | [ C(RESULT_MISS) ] = 0x649, /* DTLB_STORE_MISSES.WALK_COMPLETED */ | 438 | [ C(RESULT_MISS) ] = 0xe49, /* DTLB_STORE_MISSES.WALK_COMPLETED */ |
| 439 | }, | 439 | }, |
| 440 | [ C(OP_PREFETCH) ] = { | 440 | [ C(OP_PREFETCH) ] = { |
| 441 | [ C(RESULT_ACCESS) ] = 0x0, | 441 | [ C(RESULT_ACCESS) ] = 0x0, |
diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c index 2831480c63a2..ee97196bb151 100644 --- a/kernel/events/ring_buffer.c +++ b/kernel/events/ring_buffer.c | |||
| @@ -580,7 +580,7 @@ int rb_alloc_aux(struct ring_buffer *rb, struct perf_event *event, | |||
| 580 | int ret = -ENOMEM, max_order = 0; | 580 | int ret = -ENOMEM, max_order = 0; |
| 581 | 581 | ||
| 582 | if (!has_aux(event)) | 582 | if (!has_aux(event)) |
| 583 | return -ENOTSUPP; | 583 | return -EOPNOTSUPP; |
| 584 | 584 | ||
| 585 | if (event->pmu->capabilities & PERF_PMU_CAP_AUX_NO_SG) { | 585 | if (event->pmu->capabilities & PERF_PMU_CAP_AUX_NO_SG) { |
| 586 | /* | 586 | /* |
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index 84e7e698411e..a2670e9d652d 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c | |||
| @@ -619,7 +619,7 @@ static int post_process_probe_trace_point(struct probe_trace_point *tp, | |||
| 619 | struct map *map, unsigned long offs) | 619 | struct map *map, unsigned long offs) |
| 620 | { | 620 | { |
| 621 | struct symbol *sym; | 621 | struct symbol *sym; |
| 622 | u64 addr = tp->address + tp->offset - offs; | 622 | u64 addr = tp->address - offs; |
| 623 | 623 | ||
| 624 | sym = map__find_symbol(map, addr); | 624 | sym = map__find_symbol(map, addr); |
| 625 | if (!sym) | 625 | if (!sym) |
