diff options
author | Ingo Molnar <mingo@kernel.org> | 2017-08-29 23:13:56 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-08-29 23:13:56 +0200 |
commit | 1b2f76d77a277bb70d38ad0991ed7f16bbc115a9 (patch) | |
tree | b02f9b167b1c1b9df860f480b45523c70ef52acf /tools/perf/util/mem-events.c | |
parent | 5da382eb6ea37e2c49ef521c636d73f6ecc3fa81 (diff) | |
parent | b2f7605076d6cdd68162c42c34caadafbbe4c69f (diff) | |
download | linux-1b2f76d77a277bb70d38ad0991ed7f16bbc115a9.tar.bz2 |
Merge tag 'perf-core-for-mingo-4.14-20170829' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
- Fix remote HITM detection for Skylake in 'perf c2c' (Jiri Olsa)
- Fixes for the handling of PERF_RECORD_READ records (Jiri Olsa)
- Fix kprobes blackist symbol lookup in 'perf probe' (Li Bin)
- The PLT header and entry sizes are not the same in !x86, fix it for ARM and
AARCH64 (Li Bin)
- Beautify pkey_{alloc,free,mprotect} arguments in 'perf trace' (Arnaldo Carvalho de Melo)
- Fix CC, AR, LD external definition, allow flex and bison to be
externally defined and other related Makefile fixes (David Carrillo-Cisneros)
- Sync CPU features kernel ABI headers with tooling headers (Arnaldo Carvalho de Melo)
- Fix path to PMU formats in 'perf stat' documentation (Jack Henschel)
- Fix static build with newer toolchains (Jiri Olsa)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/util/mem-events.c')
-rw-r--r-- | tools/perf/util/mem-events.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/tools/perf/util/mem-events.c b/tools/perf/util/mem-events.c index ced4f3fff035..28afe5fa84d6 100644 --- a/tools/perf/util/mem-events.c +++ b/tools/perf/util/mem-events.c @@ -316,6 +316,11 @@ int c2c_decode_stats(struct c2c_stats *stats, struct mem_info *mi) u64 lvl = data_src->mem_lvl; u64 snoop = data_src->mem_snoop; u64 lock = data_src->mem_lock; + /* + * Skylake might report unknown remote level via this + * bit, consider it when evaluating remote HITMs. + */ + bool mrem = data_src->mem_remote; int err = 0; #define HITM_INC(__f) \ @@ -361,7 +366,8 @@ do { \ } if ((lvl & P(LVL, REM_RAM1)) || - (lvl & P(LVL, REM_RAM2))) { + (lvl & P(LVL, REM_RAM2)) || + mrem) { stats->rmt_dram++; if (snoop & P(SNOOP, HIT)) stats->ld_shared++; @@ -371,7 +377,8 @@ do { \ } if ((lvl & P(LVL, REM_CCE1)) || - (lvl & P(LVL, REM_CCE2))) { + (lvl & P(LVL, REM_CCE2)) || + mrem) { if (snoop & P(SNOOP, HIT)) stats->rmt_hit++; else if (snoop & P(SNOOP, HITM)) |