Archive-only list for patches
 help / color / mirror / Atom feed
From: Tony Luck <tony.luck@intel.com>
To: Fenghua Yu <fenghuay@nvidia.com>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>,
	Peter Newman <peternewman@google.com>,
	James Morse <james.morse@arm.com>,
	Babu Moger <babu.moger@amd.com>,
	Drew Fustini <dfustini@baylibre.com>,
	Dave Martin <Dave.Martin@arm.com>, Chen Yu <yu.c.chen@intel.com>,
	David E Box <david.e.box@intel.com>,
	x86@kernel.org
Cc: Christoph Hellwig <hch@infradead.org>,
	linux-kernel@vger.kernel.org, patches@lists.linux.dev,
	Tony Luck <tony.luck@intel.com>
Subject: [PATCH v11 01/23] x86/resctrl: Give better names to X86_FEATURE flags for monitoring
Date: Mon, 31 Aug 2026 10:43:59 -0700	[thread overview]
Message-ID: <20260831174421.13921-2-tony.luck@intel.com> (raw)
In-Reply-To: <20260831174421.13921-1-tony.luck@intel.com>

The feature flags for enumeration of Resource Director Technology (RDT)
capabilities were chosen when the only feature was LLC cache occupancy
monitoring and they were given names using the abbreviation CQM for
Cache Quality of Service Monitoring.

Additional monitoring features have been added to CPUs and the names
are now more likely to confuse than inform the purpose of these flags.

Rename X86_FEATURE_CQM to X86_FEATURE_RDT_M (to match the Intel Software
Developer's Manual, and for symmetry with X86_FEATURE_RDT_A).

Rename X86_FEATURE_CQM_LLC to X86_FEATURE_L3_MON since it enumerates
that some L3 monitoring features may be present.

Add missing dependency to cpuid_deps[].

Signed-off-by: Tony Luck <tony.luck@intel.com>
---
v11:
	New patch. Fix FEATURE options

 Documentation/arch/x86/cpuinfo.rst       | 2 +-
 arch/x86/include/asm/cpufeatures.h       | 4 ++--
 tools/arch/x86/include/asm/cpufeatures.h | 4 ++--
 arch/x86/kernel/cpu/cpuid-deps.c         | 8 +++++---
 arch/x86/kernel/cpu/resctrl/core.c       | 2 +-
 arch/x86/kernel/cpu/scattered.c          | 2 +-
 6 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/Documentation/arch/x86/cpuinfo.rst b/Documentation/arch/x86/cpuinfo.rst
index 17fce95367e6..5aa4e9d2ad23 100644
--- a/Documentation/arch/x86/cpuinfo.rst
+++ b/Documentation/arch/x86/cpuinfo.rst
@@ -96,7 +96,7 @@ Flags can be from scattered CPUID-based features
 Hardware features enumerated in sparsely populated CPUID leaves get
 software-defined values. Still, CPUID needs to be queried to determine
 if a given feature is present. This is done in init_scattered_cpuid_features().
-For instance, X86_FEATURE_CQM_LLC is defined as 11*32 + 0 and its presence is
+For instance, X86_FEATURE_L3_MON is defined as 11*32 + 0 and its presence is
 checked at runtime in the respective CPUID leaf [EAX=f, ECX=0] bit EDX[1].
 
 The intent of scattering CPUID leaves is to not bloat struct
diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
index f70ee74b5f92..6a7f0adb123e 100644
--- a/arch/x86/include/asm/cpufeatures.h
+++ b/arch/x86/include/asm/cpufeatures.h
@@ -252,7 +252,7 @@
 #define X86_FEATURE_ERMS		( 9*32+ 9) /* "erms" Enhanced REP MOVSB/STOSB instructions */
 #define X86_FEATURE_INVPCID		( 9*32+10) /* "invpcid" Invalidate Processor Context ID */
 #define X86_FEATURE_RTM			( 9*32+11) /* "rtm" Restricted Transactional Memory */
-#define X86_FEATURE_CQM			( 9*32+12) /* "cqm" Cache QoS Monitoring */
+#define X86_FEATURE_RDT_M		( 9*32+12) /* "cqm" Resource Director Technology Monitoring */
 #define X86_FEATURE_ZERO_FCS_FDS	( 9*32+13) /* Zero out FPU CS and FPU DS */
 #define X86_FEATURE_MPX			( 9*32+14) /* "mpx" Memory Protection Extension */
 #define X86_FEATURE_RDT_A		( 9*32+15) /* "rdt_a" Resource Director Technology Allocation */
@@ -285,7 +285,7 @@
  *
  * Reuse free bits when adding new feature flags!
  */
-#define X86_FEATURE_CQM_LLC		(11*32+ 0) /* "cqm_llc" LLC QoS if 1 */
+#define X86_FEATURE_L3_MON		(11*32+ 0) /* "cqm_llc" LLC QoS if 1 */
 #define X86_FEATURE_CQM_OCCUP_LLC	(11*32+ 1) /* "cqm_occup_llc" LLC occupancy monitoring */
 #define X86_FEATURE_CQM_MBM_TOTAL	(11*32+ 2) /* "cqm_mbm_total" LLC Total MBM monitoring */
 #define X86_FEATURE_CQM_MBM_LOCAL	(11*32+ 3) /* "cqm_mbm_local" LLC Local MBM monitoring */
diff --git a/tools/arch/x86/include/asm/cpufeatures.h b/tools/arch/x86/include/asm/cpufeatures.h
index 6547c0aee45b..9b71a7663e26 100644
--- a/tools/arch/x86/include/asm/cpufeatures.h
+++ b/tools/arch/x86/include/asm/cpufeatures.h
@@ -242,7 +242,7 @@
 #define X86_FEATURE_ERMS		( 9*32+ 9) /* "erms" Enhanced REP MOVSB/STOSB instructions */
 #define X86_FEATURE_INVPCID		( 9*32+10) /* "invpcid" Invalidate Processor Context ID */
 #define X86_FEATURE_RTM			( 9*32+11) /* "rtm" Restricted Transactional Memory */
-#define X86_FEATURE_CQM			( 9*32+12) /* "cqm" Cache QoS Monitoring */
+#define X86_FEATURE_RDT_M		( 9*32+12) /* "cqm" Resource Director Technology Monitoring */
 #define X86_FEATURE_ZERO_FCS_FDS	( 9*32+13) /* Zero out FPU CS and FPU DS */
 #define X86_FEATURE_MPX			( 9*32+14) /* "mpx" Memory Protection Extension */
 #define X86_FEATURE_RDT_A		( 9*32+15) /* "rdt_a" Resource Director Technology Allocation */
@@ -275,7 +275,7 @@
  *
  * Reuse free bits when adding new feature flags!
  */
-#define X86_FEATURE_CQM_LLC		(11*32+ 0) /* "cqm_llc" LLC QoS if 1 */
+#define X86_FEATURE_L3_MON		(11*32+ 0) /* "cqm_llc" LLC QoS if 1 */
 #define X86_FEATURE_CQM_OCCUP_LLC	(11*32+ 1) /* "cqm_occup_llc" LLC occupancy monitoring */
 #define X86_FEATURE_CQM_MBM_TOTAL	(11*32+ 2) /* "cqm_mbm_total" LLC Total MBM monitoring */
 #define X86_FEATURE_CQM_MBM_LOCAL	(11*32+ 3) /* "cqm_mbm_local" LLC Local MBM monitoring */
diff --git a/arch/x86/kernel/cpu/cpuid-deps.c b/arch/x86/kernel/cpu/cpuid-deps.c
index 99801e844b30..58482c264b76 100644
--- a/arch/x86/kernel/cpu/cpuid-deps.c
+++ b/arch/x86/kernel/cpu/cpuid-deps.c
@@ -67,9 +67,11 @@ static const struct cpuid_dep cpuid_deps[] = {
 	{ X86_FEATURE_AVX512_4FMAPS,		X86_FEATURE_AVX512F   },
 	{ X86_FEATURE_AVX512_VPOPCNTDQ,		X86_FEATURE_AVX512F   },
 	{ X86_FEATURE_AVX512_VP2INTERSECT,	X86_FEATURE_AVX512VL  },
-	{ 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_L3_MON,			X86_FEATURE_RDT_M     },
+	{ X86_FEATURE_CQM_OCCUP_LLC,		X86_FEATURE_L3_MON    },
+	{ X86_FEATURE_CQM_MBM_TOTAL,		X86_FEATURE_L3_MON    },
+	{ X86_FEATURE_CQM_MBM_LOCAL,		X86_FEATURE_L3_MON    },
+	{ X86_FEATURE_ABMC,			X86_FEATURE_L3_MON    },
 	{ X86_FEATURE_BMEC,			X86_FEATURE_CQM_MBM_TOTAL   },
 	{ X86_FEATURE_BMEC,			X86_FEATURE_CQM_MBM_LOCAL   },
 	{ X86_FEATURE_SDCIAE,			X86_FEATURE_CAT_L3    },
diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
index 55214d6fdc49..2435eddd24eb 100644
--- a/arch/x86/kernel/cpu/resctrl/core.c
+++ b/arch/x86/kernel/cpu/resctrl/core.c
@@ -1078,7 +1078,7 @@ static enum cpuhp_state rdt_online;
 /* Runs once on the BSP during boot. */
 void resctrl_cpu_detect(struct cpuinfo_x86 *c)
 {
-	if (!cpu_has(c, X86_FEATURE_CQM_LLC) && !cpu_has(c, X86_FEATURE_ABMC)) {
+	if (!cpu_has(c, X86_FEATURE_L3_MON) && !cpu_has(c, X86_FEATURE_ABMC)) {
 		c->x86_cache_max_rmid  = -1;
 		c->x86_cache_occ_scale = -1;
 		c->x86_cache_mbm_width_offset = -1;
diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c
index 8665a6474806..7e5490e1e537 100644
--- a/arch/x86/kernel/cpu/scattered.c
+++ b/arch/x86/kernel/cpu/scattered.c
@@ -32,7 +32,7 @@ static const struct cpuid_bit cpuid_bits[] = {
 	{ X86_FEATURE_APX,			CPUID_EDX, 21, 0x00000007, 1 },
 	{ X86_FEATURE_RRSBA_CTRL,		CPUID_EDX,  2, 0x00000007, 2 },
 	{ X86_FEATURE_BHI_CTRL,			CPUID_EDX,  4, 0x00000007, 2 },
-	{ X86_FEATURE_CQM_LLC,			CPUID_EDX,  1, 0x0000000f, 0 },
+	{ X86_FEATURE_L3_MON,			CPUID_EDX,  1, 0x0000000f, 0 },
 	{ X86_FEATURE_CQM_OCCUP_LLC,		CPUID_EDX,  0, 0x0000000f, 1 },
 	{ X86_FEATURE_CQM_MBM_TOTAL,		CPUID_EDX,  1, 0x0000000f, 1 },
 	{ X86_FEATURE_CQM_MBM_LOCAL,		CPUID_EDX,  2, 0x0000000f, 1 },
-- 
2.55.0


  reply	other threads:[~2026-08-31 17:44 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-31 17:43 [PATCH v11 00/23] Allow AET to use PMT as loadable module Tony Luck
2026-08-31 17:43 ` Tony Luck [this message]
2026-08-31 17:44 ` [PATCH v11 02/23] x86/resctrl: Check if monitoring features are enabled Tony Luck
2026-08-31 17:44 ` [PATCH v11 03/23] x86/resctrl: Enumerate monitor features in rdt_get_l3_mon_config() Tony Luck
2026-08-31 17:44 ` [PATCH v11 04/23] x86/resctrl: Apply Intel MBM quirk from rdt_get_l3_mon_config() Tony Luck
2026-08-31 17:44 ` [PATCH v11 05/23] x86/resctrl: Delete resctrl_cpu_detect() Tony Luck
2026-08-31 17:44 ` [PATCH v11 06/23] arm,x86,fs/resctrl: Replace architecture resctrl_arch_{alloc,mon}_capable() Tony Luck
2026-08-31 17:44 ` [PATCH v11 07/23] x86/resctrl: Add special case for Intel Haswell enumeration Tony Luck
2026-08-31 17:44 ` [PATCH v11 08/23] x86/resctrl: Delete rdt_alloc_capable and rdt_mon_capable Tony Luck
2026-08-31 17:44 ` [PATCH v11 09/23] fs/resctrl: Remove redundant calls to resctrl_mon_capable() Tony Luck
2026-08-31 17:44 ` [PATCH v11 10/23] x86/resctrl: Honor rdt=perf option to force enable AET perf events Tony Luck
2026-08-31 17:44 ` [PATCH v11 11/23] fs/resctrl: Add interface to disable a monitor event Tony Luck
2026-08-31 17:44 ` [PATCH v11 12/23] arm,x86,fs/resctrl: Handle change in number of RMIDs on each mount Tony Luck
2026-08-31 17:44 ` [PATCH v11 13/23] x86/resctrl: Handle systems when AET is the only resource Tony Luck
2026-08-31 17:44 ` [PATCH v11 14/23] x86/resctrl: Enforce system RMID limit on AET event groups Tony Luck
2026-08-31 17:44 ` [PATCH v11 15/23] x86/resctrl: Add PMT registration API for AET enumeration callbacks Tony Luck
2026-08-31 17:44 ` [PATCH v11 16/23] platform/x86/intel/pmt: Register enumeration functions with resctrl Tony Luck
2026-09-01 11:11   ` Ilpo Järvinen
2026-08-31 17:44 ` [PATCH v11 17/23] arm,x86/resctrl: Resolve INTEL_PMT_TELEMETRY symbols at runtime Tony Luck
2026-08-31 17:44 ` [PATCH v11 18/23] fs/resctrl: Call arch code for every mount Tony Luck
2026-08-31 17:44 ` [PATCH v11 19/23] x86/resctrl: Export interface to report telemetry unbind/remove Tony Luck
2026-08-31 17:44 ` [PATCH v11 20/23] platform/x86/intel/pmt: Inform resctrl when MMIO maps are being removed Tony Luck
2026-09-01 11:09   ` Ilpo Järvinen
2026-08-31 17:44 ` [PATCH v11 21/23] x86/resctrl: Require 64-bit x86 for resctrl support Tony Luck
2026-08-31 17:44 ` [PATCH v11 22/23] x86/resctrl: Simplify Kconfig options for resctrl Tony Luck
2026-08-31 17:44 ` [PATCH v11 23/23] x86/resctrl: Document telemetry mount timing caveat Tony Luck
2026-09-01 19:53 ` [PATCH v11 00/23] Allow AET to use PMT as loadable module Luck, Tony

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=20260831174421.13921-2-tony.luck@intel.com \
    --to=tony.luck@intel.com \
    --cc=Dave.Martin@arm.com \
    --cc=babu.moger@amd.com \
    --cc=david.e.box@intel.com \
    --cc=dfustini@baylibre.com \
    --cc=fenghuay@nvidia.com \
    --cc=hch@infradead.org \
    --cc=james.morse@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maciej.wieczor-retman@intel.com \
    --cc=patches@lists.linux.dev \
    --cc=peternewman@google.com \
    --cc=reinette.chatre@intel.com \
    --cc=x86@kernel.org \
    --cc=yu.c.chen@intel.com \
    /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