Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1240678pxb; Thu, 4 Feb 2021 08:10:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJwXlLNFRgYiOJRmCxiZ7N934BX0Cwp+EDuIECLqbc61ZYQHBcjaqSrTM9iIa9Ge8WmY6LjX X-Received: by 2002:a50:bc14:: with SMTP id j20mr8531698edh.381.1612455041638; Thu, 04 Feb 2021 08:10:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612455041; cv=none; d=google.com; s=arc-20160816; b=n/SZXwZy0RjSTQEGqNbzonk3vUdWjBQzyW5WJtxyxFAEC6hb4Ob9yp16jrJw21VxOf oniH4tI1FxHQcYyLm8SaGnHIpO2g+IOcXe5o5PtrZ4eL5IaSGIVGl/i/1nOvsjWQvEgA WGCbwGV+GPI7G8isVew+gTn9xmY4MaRnSqrkBZvqnu489v6IeI2YGbLKoBcaUw9P6xeY bWjRRTvuxUeY6HBcIUrzILmepRhLyPl+JnBrEmAEriFi20O3vrXbg/d55sdVU7YoXLJf +ruOUqHH4pEndgLLM6lWi3Wm0V7TDbJ/92+59HkHPtxjoSgvO7G8gXNj3IPkbXVkcjxO 2HJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:ironport-sdr:ironport-sdr; bh=ofMrCeEonhcexQa/gedQnAeJlVCD7gmxSgy0FOh/LVw=; b=SmxuVL8ktMJyDSj4rc/62KRo5iZS0ljj7mNVC7tdJY6FOya0M9aDzDit4BlL85g1nf pC8EG/v0WsOaMBTvJg+vhA7RK3GD09SDlalS3vEu3QE0H3WciEWJobi94YT6styrME5l ATCQ5h9eiItH2BeOm5xp95L/0CM+kDhNPbiEyrpDMobaSETyJL6e4uWrruJoM8QkGsND HUBwisLYLoQe2e2DBQgwFXUJfgLSe95LAwCx1ZGkzTAhA2xNIxQpomBg4PnNvaBiXfJX yFdCKIKMcuF0KQXPlw4KzTWie4QV7uDWb8ycbjF3n8i+hclmdEFEFvvrBx1Nvx5q2rIj mIOw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id qp24si3933743ejb.563.2021.02.04.08.10.16; Thu, 04 Feb 2021 08:10:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237827AbhBDQIB (ORCPT + 99 others); Thu, 4 Feb 2021 11:08:01 -0500 Received: from mga17.intel.com ([192.55.52.151]:9765 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237777AbhBDQHG (ORCPT ); Thu, 4 Feb 2021 11:07:06 -0500 IronPort-SDR: lVY4z9WJbU62XcGxvvQdWKNZ8g/bNqdU/2vqEm3Nv8x4KrVXmTJv5McBX2vs9wadlLCM8vieu4 eZ/fF6TUWXNg== X-IronPort-AV: E=McAfee;i="6000,8403,9885"; a="161024650" X-IronPort-AV: E=Sophos;i="5.79,401,1602572400"; d="scan'208";a="161024650" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Feb 2021 08:06:12 -0800 IronPort-SDR: eQy496WW/35g6GP4T6wKxBvSaTnWvP16Cf53LhZfVIPqMuiv0m2mhCXuhPOKJ92E9pSq/k+PJa plm0CsityIvg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,401,1602572400"; d="scan'208";a="372728031" Received: from power-sh.sh.intel.com ([10.239.48.130]) by fmsmga008.fm.intel.com with ESMTP; 04 Feb 2021 08:06:09 -0800 From: Zhang Rui To: peterz@infradead.org, mingo@redhat.com, acme@kernel.org Cc: mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@redhat.com, namhyung@kernel.org, linux-kernel@vger.kernel.org, x86@kernel.org, kan.liang@linux.intel.com, ak@linux.intel.com Subject: [PATCH V2 2/3] perf/x86/rapl: Only check lower 32bits for RAPL energy counters Date: Fri, 5 Feb 2021 00:18:15 +0800 Message-Id: <20210204161816.12649-2-rui.zhang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210204161816.12649-1-rui.zhang@intel.com> References: <20210204161816.12649-1-rui.zhang@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In the RAPL ENERGY_COUNTER MSR, only the lower 32bits represent the energy counter. On previous platforms, the higher 32bits are reverved and always return Zero. But on Intel SapphireRapids platform, the higher 32bits are reused for other purpose and return non-zero value. Thus check the lower 32bits only for these ENERGY_COUTNER MSRs, to make sure the RAPL PMU events are not added erroneously when higher 32bits contain non-zero value. Signed-off-by: Zhang Rui Reviewed-by: Andi Kleen --- arch/x86/events/rapl.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/arch/x86/events/rapl.c b/arch/x86/events/rapl.c index 7dbbeaacd995..7ed25b2ba05f 100644 --- a/arch/x86/events/rapl.c +++ b/arch/x86/events/rapl.c @@ -523,12 +523,15 @@ static bool test_msr(int idx, void *data) return test_bit(idx, (unsigned long *) data); } +/* Only lower 32bits of the MSR represents the energy counter */ +#define RAPL_MSR_MASK 0xFFFFFFFF + static struct perf_msr intel_rapl_msrs[] = { - [PERF_RAPL_PP0] = { MSR_PP0_ENERGY_STATUS, &rapl_events_cores_group, test_msr }, - [PERF_RAPL_PKG] = { MSR_PKG_ENERGY_STATUS, &rapl_events_pkg_group, test_msr }, - [PERF_RAPL_RAM] = { MSR_DRAM_ENERGY_STATUS, &rapl_events_ram_group, test_msr }, - [PERF_RAPL_PP1] = { MSR_PP1_ENERGY_STATUS, &rapl_events_gpu_group, test_msr }, - [PERF_RAPL_PSYS] = { MSR_PLATFORM_ENERGY_STATUS, &rapl_events_psys_group, test_msr }, + [PERF_RAPL_PP0] = { MSR_PP0_ENERGY_STATUS, &rapl_events_cores_group, test_msr, false, RAPL_MSR_MASK }, + [PERF_RAPL_PKG] = { MSR_PKG_ENERGY_STATUS, &rapl_events_pkg_group, test_msr, false, RAPL_MSR_MASK }, + [PERF_RAPL_RAM] = { MSR_DRAM_ENERGY_STATUS, &rapl_events_ram_group, test_msr, false, RAPL_MSR_MASK }, + [PERF_RAPL_PP1] = { MSR_PP1_ENERGY_STATUS, &rapl_events_gpu_group, test_msr, false, RAPL_MSR_MASK }, + [PERF_RAPL_PSYS] = { MSR_PLATFORM_ENERGY_STATUS, &rapl_events_psys_group, test_msr, false, RAPL_MSR_MASK }, }; /* -- 2.17.1