public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: "Natarajan, Janakarajan" <Janakarajan.Natarajan@amd.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>,
	Jiri Olsa <jolsa@redhat.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Stephane Eranian <eranian@google.com>,
	Suravee <Suravee.Suthikulpanit@amd.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Vince Weaver <vincent.weaver@maine.edu>,
	Ingo Molnar <mingo@kernel.org>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH AUTOSEL 4.14 49/61] perf/x86/amd/uncore: Set ThreadMask and SliceMask for L3 Cache perf events
Date: Tue, 16 Oct 2018 00:13:51 -0400	[thread overview]
Message-ID: <20181016041403.135678-49-sashal@kernel.org> (raw)
In-Reply-To: <20181016041403.135678-1-sashal@kernel.org>

From: "Natarajan, Janakarajan" <Janakarajan.Natarajan@amd.com>

[ 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 <Janakarajan.Natarajan@amd.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: H . Peter Anvin <hpa@zytor.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Suravee <Suravee.Suthikulpanit@amd.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Link: http://lkml.kernel.org/r/Message-ID:
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 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


  parent reply	other threads:[~2018-10-16  4:14 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-16  4:13 [PATCH AUTOSEL 4.14 01/61] xfrm: Validate address prefix lengths in the xfrm selector Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 02/61] xfrm6: call kfree_skb when skb is toobig Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 03/61] xfrm: reset transport header back to network header after all input transforms ahave been applied Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 04/61] xfrm: reset crypto_done when iterating over multiple input xfrms Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 05/61] mac80211: Always report TX status Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 06/61] cfg80211: reg: Init wiphy_idx in regulatory_hint_core() Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 07/61] mac80211: fix pending queue hang due to TX_DROP Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 08/61] cfg80211: Address some corner cases in scan result channel updating Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 09/61] mac80211: TDLS: fix skb queue/priority assignment Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 10/61] mac80211: fix TX status reporting for ieee80211s Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 11/61] xfrm: Fix NULL pointer dereference when skb_dst_force clears the dst_entry Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 12/61] ARM: 8799/1: mm: fix pci_ioremap_io() offset check Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 13/61] xfrm: validate template mode Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 14/61] netfilter: bridge: Don't sabotage nf_hook calls from an l3mdev Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 15/61] arm64: hugetlb: Fix handling of young ptes Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 16/61] ARM: dts: BCM63xx: Fix incorrect interrupt specifiers Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 17/61] net: macb: Clean 64b dma addresses if they are not detected Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 18/61] net: hns: fix for unmapping problem when SMMU is on Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 19/61] soc: fsl: qbman: qman: avoid allocating from non existing gen_pool Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 20/61] soc: fsl: qe: Fix copy/paste bug in ucc_get_tdm_sync_shift() Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 21/61] nl80211: Fix possible Spectre-v1 for NL80211_TXRATE_HT Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 22/61] mac80211_hwsim: do not omit multicast announce of first added radio Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 23/61] Bluetooth: SMP: fix crash in unpairing Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 24/61] pxa168fb: prepare the clock Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 25/61] qed: Avoid implicit enum conversion in qed_set_tunn_cls_info Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 26/61] qed: Fix mask parameter in qed_vf_prep_tunn_req_tlv Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 27/61] qed: Avoid implicit enum conversion in qed_roce_mode_to_flavor Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 28/61] bonding: pass link-local packets to bonding master also Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 29/61] bonding: avoid possible dead-lock Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 30/61] qed: Avoid constant logical operation warning in qed_vf_pf_acquire Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 31/61] qed: Avoid implicit enum conversion in qed_iwarp_parse_rx_pkt Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 32/61] bnxt_en: Fix TX timeout during netpoll Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 33/61] nl80211: Fix possible Spectre-v1 for CQM RSSI thresholds Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 34/61] asix: Check for supported Wake-on-LAN modes Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 35/61] ax88179_178a: " Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 36/61] lan78xx: " Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 37/61] sr9800: " Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 38/61] r8152: Check for supported Wake-on-LAN Modes Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 39/61] smsc75xx: Check for Wake-on-LAN modes Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 40/61] smsc95xx: " Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 41/61] qlcnic: fix Tx descriptor corruption on 82xx devices Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 42/61] i2c: i2c-scmi: fix for i2c_smbus_write_block_data Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 43/61] cfg80211: fix use-after-free in reg_process_hint() Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 44/61] net/mlx5: E-Switch, Fix out of bound access when setting vport rate Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 45/61] net/mlx5e: Set vlan masks for all offloaded TC rules Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 46/61] perf/core: Fix perf_pmu_unregister() locking Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 47/61] perf/ring_buffer: Prevent concurent ring buffer access Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 48/61] perf/x86/intel/uncore: Fix PCI BDF address of M3UPI on SKX Sasha Levin
2018-10-16  4:13 ` Sasha Levin [this message]
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 50/61] net: fec: fix rare tx timeout Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 51/61] declance: Fix continuation with the adapter identification message Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 52/61] nfp: avoid soft lockups under control message storm Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 53/61] bonding: fix warning message Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 54/61] net: qualcomm: rmnet: Skip processing loopback packets Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 55/61] locking/ww_mutex: Fix runtime warning in the WW mutex selftest Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 56/61] net/usb: cancel pending work when unbinding smsc75xx Sasha Levin
2018-10-16  4:13 ` [PATCH AUTOSEL 4.14 57/61] be2net: don't flip hw_features when VXLANs are added/deleted Sasha Levin
2018-10-16  4:14 ` [PATCH AUTOSEL 4.14 58/61] net: cxgb3_main: fix a missing-check bug Sasha Levin
2018-10-16  4:14 ` [PATCH AUTOSEL 4.14 59/61] yam: " Sasha Levin
2018-10-16  4:14 ` [PATCH AUTOSEL 4.14 60/61] ocfs2: fix crash in ocfs2_duplicate_clusters_by_page() Sasha Levin
2018-10-16  4:14 ` [PATCH AUTOSEL 4.14 61/61] mm/vmstat.c: fix outdated vmstat_text Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181016041403.135678-49-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=Janakarajan.Natarajan@amd.com \
    --cc=Suravee.Suthikulpanit@amd.com \
    --cc=acme@kernel.org \
    --cc=acme@redhat.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=eranian@google.com \
    --cc=hpa@zytor.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=vincent.weaver@maine.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox