From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751895AbdH2VWL (ORCPT ); Tue, 29 Aug 2017 17:22:11 -0400 Received: from terminus.zytor.com ([65.50.211.136]:51349 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751827AbdH2VWI (ORCPT ); Tue, 29 Aug 2017 17:22:08 -0400 Date: Tue, 29 Aug 2017 14:19:54 -0700 From: tip-bot for Jiri Olsa Message-ID: Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, dsahern@gmail.com, namhyung@kernel.org, a.p.zijlstra@chello.nl, ak@linux.intel.com, jolsa@kernel.org, mingo@kernel.org, acme@redhat.com, alexander.shishkin@linux.intel.com, tglx@linutronix.de, jmario@redhat.com Reply-To: acme@redhat.com, tglx@linutronix.de, alexander.shishkin@linux.intel.com, jmario@redhat.com, mingo@kernel.org, dsahern@gmail.com, hpa@zytor.com, a.p.zijlstra@chello.nl, namhyung@kernel.org, jolsa@kernel.org, ak@linux.intel.com, linux-kernel@vger.kernel.org In-Reply-To: <20170824085732.28481-1-jolsa@kernel.org> References: <20170824085732.28481-1-jolsa@kernel.org> To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/core] perf c2c: Fix remote HITM detection for Skylake Git-Commit-ID: 12c15302dd4b768105d4b7a487ed4858ccab94fc X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 12c15302dd4b768105d4b7a487ed4858ccab94fc Gitweb: http://git.kernel.org/tip/12c15302dd4b768105d4b7a487ed4858ccab94fc Author: Jiri Olsa AuthorDate: Thu, 24 Aug 2017 10:57:32 +0200 Committer: Arnaldo Carvalho de Melo CommitDate: Mon, 28 Aug 2017 11:05:10 -0300 perf c2c: Fix remote HITM detection for Skylake Skylake introduced new mem_remote bit in union perf_mem_data_src [1]. It applies to any other memory level to express Remote unknown level, as is reported by Skylake. Adding this extra check to c2c_decode_stats to properly decode remote HITMs on Skylake. [1] http://lkml.kernel.org/r/20170816222156.19953-4-andi@firstfloor.org Signed-off-by: Jiri Olsa Acked-by: Andi Kleen Cc: Alexander Shishkin Cc: David Ahern Cc: Joe Mario Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20170824085732.28481-1-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/util/mem-events.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/mem-events.c b/tools/perf/util/mem-events.c index ced4f3f..28afe5f 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))