Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp2464282imd; Fri, 2 Nov 2018 11:52:14 -0700 (PDT) X-Google-Smtp-Source: AJdET5f3j6HO+RxB2XYq7W9B/YQHQ5f6A2IKJkEudvXAT5A0uIEy4/VbLHD4cRRpEQ7WknSUUEgE X-Received: by 2002:a17:902:6909:: with SMTP id j9-v6mr12361902plk.221.1541184734318; Fri, 02 Nov 2018 11:52:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1541184734; cv=none; d=google.com; s=arc-20160816; b=SeDGeckre+SRhiuHmv2opup6N9UFatmhgeukzdcz68UORIeFaA1kUHAejpnvCOL38x ielbpOf1P4ukfQ4GMqhAA1NZmfqhmUi7d4B4Mp64JWxtPm+UTVujyA99zcVSdl6J5dEM SZ09aa7Xahaz0e/1sPrcJWKV+yqwkryBEd1+A69taW73W4B5z2VA1O2OLaM6QdY/yQ4M HuHZQR8Kg1k+ncZGDGSEjMdzdsePhNl7bxHhvGKgocawy/dcgkfY0k6kjH/Qz09J5/w/ 5S+p61z5BochLo89iNn1hTi2inG+8SZUwaX2PI5GJB1WTH7Xuu9URHUJ73AAPL87sRC0 76GA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=xfRnnEvimGwm8r2hUMs8ItnaQgB8+NKcFRkOCE5ey+c=; b=Kr1hu4v1fljKnDK1MuwDZelFnsfp/ns56SOwXFICSL5VkrVGRyAKgKXE6uS7CkAorg w/L+tqoMv7N024FFydl6L7EtxEcFOGNwk/0iBI/TXI6I7bwhElmW36wduw6vlO4wJYvZ kDD0z7Cyiu8tlpu3m9l9C7l8KirbOgfF4AkRs8sQZDkHFT0irYqr553aQQzXGhsKd9J2 FyoHpI+XZooZTgacPwItN+wbd8HuZsYpdO6AVs1nj4TvtB1vNSciM2au8TA3pvntj8Bd 8SdYdCxs3UR/UlLwvAc2unnnqS1yXtOTJ/5HlEJZIsaNUcySw5meOjKgDLWZaCJOS3z2 cv9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ShxawkPP; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z20-v6si34457780pfe.245.2018.11.02.11.51.59; Fri, 02 Nov 2018 11:52:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ShxawkPP; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730965AbeKCD7y (ORCPT + 99 others); Fri, 2 Nov 2018 23:59:54 -0400 Received: from mail.kernel.org ([198.145.29.99]:55648 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728743AbeKCD7x (ORCPT ); Fri, 2 Nov 2018 23:59:53 -0400 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9F8A22084A; Fri, 2 Nov 2018 18:51:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1541184698; bh=R27NrdKU3sHHqesXuymUSLy693dklZpb2f4abCWE9gU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ShxawkPPzHztp6seZbd5vV/803lsJUHU1ZEnzf6Mr111Zw8Z5JkitP/GwDMfu0ozS W1xti807sJ3Snu1d4DXFufe7Jm5zRhoOTIK0903xkTd8npWU0gVyB9YHyzQxCJFe9s zSCYyKPumzL99u+Zxzjz9devGNPqZ+fd5cr7iKkA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Janakarajan Natarajan , "Peter Zijlstra (Intel)" , Alexander Shishkin , Arnaldo Carvalho de Melo , Arnaldo Carvalho de Melo , Borislav Petkov , "H . Peter Anvin" , Jiri Olsa , Linus Torvalds , Namhyung Kim , Stephane Eranian , Suravee , Thomas Gleixner , Vince Weaver , Ingo Molnar , Sasha Levin Subject: [PATCH 4.14 041/143] perf/x86/amd/uncore: Set ThreadMask and SliceMask for L3 Cache perf events Date: Fri, 2 Nov 2018 19:33:46 +0100 Message-Id: <20181102182900.345913483@linuxfoundation.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181102182857.064326086@linuxfoundation.org> References: <20181102182857.064326086@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit d7cbbe49a9304520181fb8c9272d1327deec8453 ] In Family 17h, some L3 Cache Performance events require the ThreadMask and SliceMask to be set. For other events, these fields do not affect the count either way. Set ThreadMask and SliceMask to 0xFF and 0xF respectively. Signed-off-by: Janakarajan Natarajan Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo Cc: Borislav Petkov Cc: H . Peter Anvin Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Suravee Cc: Thomas Gleixner Cc: Vince Weaver Link: http://lkml.kernel.org/r/Message-ID: Signed-off-by: Ingo Molnar Signed-off-by: Sasha Levin --- arch/x86/events/amd/uncore.c | 10 ++++++++++ arch/x86/include/asm/perf_event.h | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c index f5cbbba99283..4e1d7483b78c 100644 --- a/arch/x86/events/amd/uncore.c +++ b/arch/x86/events/amd/uncore.c @@ -35,6 +35,7 @@ static int num_counters_llc; static int num_counters_nb; +static bool l3_mask; static HLIST_HEAD(uncore_unused_list); @@ -208,6 +209,13 @@ static int amd_uncore_event_init(struct perf_event *event) hwc->config = event->attr.config & AMD64_RAW_EVENT_MASK_NB; hwc->idx = -1; + /* + * SliceMask and ThreadMask need to be set for certain L3 events in + * Family 17h. For other events, the two fields do not affect the count. + */ + if (l3_mask) + hwc->config |= (AMD64_L3_SLICE_MASK | AMD64_L3_THREAD_MASK); + if (event->cpu < 0) return -EINVAL; @@ -542,6 +550,7 @@ static int __init amd_uncore_init(void) amd_llc_pmu.name = "amd_l3"; format_attr_event_df.show = &event_show_df; format_attr_event_l3.show = &event_show_l3; + l3_mask = true; } else { num_counters_nb = NUM_COUNTERS_NB; num_counters_llc = NUM_COUNTERS_L2; @@ -549,6 +558,7 @@ static int __init amd_uncore_init(void) amd_llc_pmu.name = "amd_l2"; format_attr_event_df = format_attr_event; format_attr_event_l3 = format_attr_event; + l3_mask = false; } amd_nb_pmu.attr_groups = amd_uncore_attr_groups_df; diff --git a/arch/x86/include/asm/perf_event.h b/arch/x86/include/asm/perf_event.h index 12f54082f4c8..78241b736f2a 100644 --- a/arch/x86/include/asm/perf_event.h +++ b/arch/x86/include/asm/perf_event.h @@ -46,6 +46,14 @@ #define INTEL_ARCH_EVENT_MASK \ (ARCH_PERFMON_EVENTSEL_UMASK | ARCH_PERFMON_EVENTSEL_EVENT) +#define AMD64_L3_SLICE_SHIFT 48 +#define AMD64_L3_SLICE_MASK \ + ((0xFULL) << AMD64_L3_SLICE_SHIFT) + +#define AMD64_L3_THREAD_SHIFT 56 +#define AMD64_L3_THREAD_MASK \ + ((0xFFULL) << AMD64_L3_THREAD_SHIFT) + #define X86_RAW_EVENT_MASK \ (ARCH_PERFMON_EVENTSEL_EVENT | \ ARCH_PERFMON_EVENTSEL_UMASK | \ -- 2.17.1