From: Babu Moger <babu.moger@amd.com>
To: <corbet@lwn.net>, <reinette.chatre@intel.com>,
<tglx@linutronix.de>, <mingo@redhat.com>, <bp@alien8.de>
Cc: <fenghua.yu@intel.com>, <dave.hansen@linux.intel.com>,
<x86@kernel.org>, <hpa@zytor.com>, <paulmck@kernel.org>,
<akpm@linux-foundation.org>, <quic_neeraju@quicinc.com>,
<rdunlap@infradead.org>, <damien.lemoal@opensource.wdc.com>,
<songmuchun@bytedance.com>, <peterz@infradead.org>,
<jpoimboe@kernel.org>, <pbonzini@redhat.com>,
<babu.moger@amd.com>, <chang.seok.bae@intel.com>,
<pawan.kumar.gupta@linux.intel.com>, <jmattson@google.com>,
<daniel.sneddon@linux.intel.com>, <sandipan.das@amd.com>,
<tony.luck@intel.com>, <james.morse@arm.com>,
<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<bagasdotme@gmail.com>, <eranian@google.com>,
<christophe.leroy@csgroup.eu>, <jarkko@kernel.org>,
<adrian.hunter@intel.com>, <quic_jiles@quicinc.com>,
<peternewman@google.com>
Subject: [PATCH v11 04/13] x86/cpufeatures: Add Bandwidth Monitoring Event Configuration feature flag
Date: Mon, 9 Jan 2023 10:43:56 -0600 [thread overview]
Message-ID: <20230109164405.569714-5-babu.moger@amd.com> (raw)
In-Reply-To: <20230109164405.569714-1-babu.moger@amd.com>
Newer AMD processors support the new feature Bandwidth Monitoring Event
Configuration (BMEC).
The feature support is identified via CPUID Fn8000_0020_EBX_x0 (ECX=0).
Bits Field Name Description
3 EVT_CFG Bandwidth Monitoring Event Configuration (BMEC)
The bandwidth monitoring events mbm_total_bytes and mbm_local_bytes are
set to count all the total and local reads/writes respectively. With the
introduction of slow memory, the two counters are not enough to count
all the different types of memory events. With the feature BMEC, the
users have the option to configure mbm_total_bytes and mbm_local_bytes
to count the specific type of events.
Each BMEC event has a configuration MSR, which contains one field for
each bandwidth type that can be used to configure the bandwidth event
to track any combination of supported bandwidth types. The event will
count requests from every bandwidth type bit that is set in the
corresponding configuration register.
Following are the types of events supported:
==== ========================================================
Bits Description
==== ========================================================
6 Dirty Victims from the QOS domain to all types of memory
5 Reads to slow memory in the non-local NUMA domain
4 Reads to slow memory in the local NUMA domain
3 Non-temporal writes to non-local NUMA domain
2 Non-temporal writes to local NUMA domain
1 Reads to memory in the non-local NUMA domain
0 Reads to memory in the local NUMA domain
==== ========================================================
By default, the mbm_total_bytes configuration is set to 0x7F to count
all the event types and the mbm_local_bytes configuration is set to
0x15 to count all the local memory events.
Feature description is available in the specification, "AMD64
Technology Platform Quality of Service Extensions, Revision: 1.03
Publication".
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Babu Moger <babu.moger@amd.com>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537
Link: https://www.amd.com/en/support/tech-docs/amd64-technology-platform-quality-service-extensions
---
arch/x86/include/asm/cpufeatures.h | 1 +
arch/x86/kernel/cpu/cpuid-deps.c | 2 ++
arch/x86/kernel/cpu/scattered.c | 1 +
3 files changed, 4 insertions(+)
diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
index 00045123f418..db5287c06b65 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -308,6 +308,7 @@
#define X86_FEATURE_CALL_DEPTH (11*32+19) /* "" Call depth tracking for RSB stuffing */
#define X86_FEATURE_MSR_TSX_CTRL (11*32+20) /* "" MSR IA32_TSX_CTRL (Intel) implemented */
#define X86_FEATURE_SMBA (11*32+21) /* Slow Memory Bandwidth Allocation */
+#define X86_FEATURE_BMEC (11*32+22) /* Bandwidth Monitoring Event Configuration */
/* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */
#define X86_FEATURE_AVX_VNNI (12*32+ 4) /* AVX VNNI instructions */
diff --git a/arch/x86/kernel/cpu/cpuid-deps.c b/arch/x86/kernel/cpu/cpuid-deps.c
index d95221117129..f6748c8bd647 100644
--- a/arch/x86/kernel/cpu/cpuid-deps.c
+++ b/arch/x86/kernel/cpu/cpuid-deps.c
@@ -68,6 +68,8 @@ static const struct cpuid_dep cpuid_deps[] = {
{ X86_FEATURE_CQM_OCCUP_LLC, X86_FEATURE_CQM_LLC },
{ X86_FEATURE_CQM_MBM_TOTAL, X86_FEATURE_CQM_LLC },
{ X86_FEATURE_CQM_MBM_LOCAL, X86_FEATURE_CQM_LLC },
+ { X86_FEATURE_BMEC, X86_FEATURE_CQM_MBM_TOTAL },
+ { X86_FEATURE_BMEC, X86_FEATURE_CQM_MBM_LOCAL },
{ X86_FEATURE_AVX512_BF16, X86_FEATURE_AVX512VL },
{ X86_FEATURE_AVX512_FP16, X86_FEATURE_AVX512BW },
{ X86_FEATURE_ENQCMD, X86_FEATURE_XSAVES },
diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c
index d925753084fb..0dad49a09b7a 100644
--- a/arch/x86/kernel/cpu/scattered.c
+++ b/arch/x86/kernel/cpu/scattered.c
@@ -46,6 +46,7 @@ static const struct cpuid_bit cpuid_bits[] = {
{ X86_FEATURE_PROC_FEEDBACK, CPUID_EDX, 11, 0x80000007, 0 },
{ X86_FEATURE_MBA, CPUID_EBX, 6, 0x80000008, 0 },
{ X86_FEATURE_SMBA, CPUID_EBX, 2, 0x80000020, 0 },
+ { X86_FEATURE_BMEC, CPUID_EBX, 3, 0x80000020, 0 },
{ X86_FEATURE_PERFMON_V2, CPUID_EAX, 0, 0x80000022, 0 },
{ X86_FEATURE_AMD_LBR_V2, CPUID_EAX, 1, 0x80000022, 0 },
{ 0, 0, 0, 0, 0 }
--
2.34.1
next prev parent reply other threads:[~2023-01-09 16:45 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-09 16:43 [PATCH v11 00/13] x86/resctrl: Support for AMD QoS new features Babu Moger
2023-01-09 16:43 ` [PATCH v11 01/13] x86/resctrl: Replace smp_call_function_many() with on_each_cpu_mask() Babu Moger
2023-01-09 23:26 ` Ashok Raj
2023-01-10 2:23 ` Moger, Babu
2023-01-10 20:58 ` Luck, Tony
2023-01-11 15:42 ` Ashok Raj
2023-01-11 19:05 ` Luck, Tony
2023-01-11 23:21 ` Ashok Raj
2023-01-09 16:43 ` [PATCH v11 02/13] x86/cpufeatures: Add Slow Memory Bandwidth Allocation feature flag Babu Moger
2023-01-09 16:43 ` [PATCH v11 03/13] x86/resctrl: Add a new resource type RDT_RESOURCE_SMBA Babu Moger
2023-01-09 16:43 ` Babu Moger [this message]
2023-01-09 18:58 ` [PATCH v11 04/13] x86/cpufeatures: Add Bandwidth Monitoring Event Configuration feature flag Borislav Petkov
2023-01-09 19:49 ` Moger, Babu
2023-01-09 21:07 ` Borislav Petkov
2023-01-09 21:25 ` Luck, Tony
2023-01-09 21:39 ` Borislav Petkov
2023-01-09 21:50 ` Luck, Tony
2023-01-24 11:28 ` Borislav Petkov
2023-01-09 23:43 ` Reinette Chatre
2023-01-24 11:32 ` Borislav Petkov
2023-01-09 21:44 ` Moger, Babu
2023-01-09 21:51 ` Borislav Petkov
2023-01-09 23:10 ` Moger, Babu
2023-01-24 11:34 ` Borislav Petkov
2023-01-24 14:11 ` Moger, Babu
2023-01-24 15:10 ` Borislav Petkov
2023-01-24 16:06 ` Moger, Babu
2023-01-24 16:59 ` Reinette Chatre
2023-01-24 17:30 ` Moger, Babu
2023-01-24 17:47 ` Reinette Chatre
2023-01-24 19:03 ` Moger, Babu
2023-01-24 19:11 ` Borislav Petkov
2023-01-24 19:23 ` Reinette Chatre
2023-01-24 20:12 ` Moger, Babu
2023-01-09 16:43 ` [PATCH v11 05/13] x86/resctrl: Include new features in command line options Babu Moger
2023-01-09 16:43 ` [PATCH v11 06/13] x86/resctrl: Detect and configure Slow Memory Bandwidth Allocation Babu Moger
2023-01-09 16:43 ` [PATCH v11 07/13] x86/resctrl: Add __init attribute to rdt_get_mon_l3_config() Babu Moger
2023-01-09 16:44 ` [PATCH v11 08/13] x86/resctrl: Support monitor configuration Babu Moger
2023-01-09 16:44 ` [PATCH v11 09/13] x86/resctrl: Add interface to read mbm_total_bytes_config Babu Moger
2023-01-09 16:44 ` [PATCH v11 10/13] x86/resctrl: Add interface to read mbm_local_bytes_config Babu Moger
2023-01-09 16:44 ` [PATCH v11 11/13] x86/resctrl: Add interface to write mbm_total_bytes_config Babu Moger
2023-01-11 22:04 ` Reinette Chatre
2023-01-09 16:44 ` [PATCH v11 12/13] x86/resctrl: Add interface to write mbm_local_bytes_config Babu Moger
2023-01-09 16:44 ` [PATCH v11 13/13] Documentation/x86: Update resctrl.rst for new features Babu Moger
2023-01-11 22:06 ` Reinette Chatre
2023-01-11 22:39 ` Moger, Babu
2023-01-11 22:56 ` Reinette Chatre
2023-01-12 0:39 ` Moger, Babu
2023-01-12 0:47 ` Moger, Babu
2023-01-12 17:30 ` Reinette Chatre
2023-01-12 19:06 ` Moger, Babu
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=20230109164405.569714-5-babu.moger@amd.com \
--to=babu.moger@amd.com \
--cc=adrian.hunter@intel.com \
--cc=akpm@linux-foundation.org \
--cc=bagasdotme@gmail.com \
--cc=bp@alien8.de \
--cc=chang.seok.bae@intel.com \
--cc=christophe.leroy@csgroup.eu \
--cc=corbet@lwn.net \
--cc=damien.lemoal@opensource.wdc.com \
--cc=daniel.sneddon@linux.intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=eranian@google.com \
--cc=fenghua.yu@intel.com \
--cc=hpa@zytor.com \
--cc=james.morse@arm.com \
--cc=jarkko@kernel.org \
--cc=jmattson@google.com \
--cc=jpoimboe@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=paulmck@kernel.org \
--cc=pawan.kumar.gupta@linux.intel.com \
--cc=pbonzini@redhat.com \
--cc=peternewman@google.com \
--cc=peterz@infradead.org \
--cc=quic_jiles@quicinc.com \
--cc=quic_neeraju@quicinc.com \
--cc=rdunlap@infradead.org \
--cc=reinette.chatre@intel.com \
--cc=sandipan.das@amd.com \
--cc=songmuchun@bytedance.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
/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
all inboxes | Powered by JetHome®