mirror of https://lore.kernel.org/lkml/
 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 v8 07/16] x86/resctrl: Honor rdt=perf option to force enable AET perf events
Date: Mon, 15 Jun 2026 11:24:48 -0700	[thread overview]
Message-ID: <20260615182457.14725-8-tony.luck@intel.com> (raw)
In-Reply-To: <20260615182457.14725-1-tony.luck@intel.com>

The kernel command line option "rdt=" is used to force enable or disable
individual resctrl features.

Linux only enumerates AET (Application Energy Telemetry) once on first
mount. But that is going to change to enumerate on each mount to allow the
pmt_telemetry driver to be configured as a module, and allow unloading when
not in use.

The following scenario will be a problem:

1) User mounts the resctrl file system.  all_regions_have_sufficient_rmid()
notes that a perf telemetry region supports fewer RMIDs than expected for
the event_group and sets e->force_off = true. But the user had specified
"rdt=perf" on the kernel command line so perf events are enabled for
this first mount.

2) Resctrl file system is unmounted and later remounted.

3) During this new mount cycle enable_events() sees that e->force_off is
set and stops enumeration for this event group. So on this second, and
all subsequent, mounts perf events are not enabled.

Fix by checking the state of e->force_on at the start of enable_events().

Signed-off-by: Tony Luck <tony.luck@intel.com>
---
v8:
	New subject and commit comment
	Fix by changing test at start of enable_events() instead of
	changing all_regions_have_sufficient_rmid()

 arch/x86/kernel/cpu/resctrl/intel_aet.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kernel/cpu/resctrl/intel_aet.c b/arch/x86/kernel/cpu/resctrl/intel_aet.c
index 89b8b619d5d5..07e9d6d4959e 100644
--- a/arch/x86/kernel/cpu/resctrl/intel_aet.c
+++ b/arch/x86/kernel/cpu/resctrl/intel_aet.c
@@ -60,8 +60,8 @@ struct pmt_event {
  *			data for all telemetry regions of type @pfname.
  *			Valid if the system supports the event group,
  *			NULL otherwise.
- * @force_off:		True when "rdt" command line or architecture code disables
- *			this event group due to insufficient RMIDs.
+ * @force_off:		True when "rdt" command line disables this event group
+ *			to avoid system limitations due to insufficient RMIDs.
  * @force_on:		True when "rdt" command line overrides disable of this
  *			event group.
  * @guid:		Unique number per XML description file.
@@ -228,7 +228,7 @@ static bool enable_events(struct event_group *e, struct pmt_feature_group *p)
 	struct rdt_resource *r = &rdt_resources_all[RDT_RESOURCE_PERF_PKG].r_resctrl;
 	int skipped_events = 0;
 
-	if (e->force_off)
+	if (e->force_off && !e->force_on)
 		return false;
 
 	if (!group_has_usable_regions(e, p))
-- 
2.54.0


  parent reply	other threads:[~2026-06-15 18:25 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-15 18:24 [PATCH v8 00/16] Allow AET to use PMT as loadable module Tony Luck
2026-06-15 18:24 ` [PATCH v8 01/16] fs/resctrl: Move functions to avoid forward references in subsequent fixes Tony Luck
2026-06-15 18:24 ` [PATCH v8 02/16] fs/resctrl: Free mon_data structures on rdt_get_tree() failure Tony Luck
2026-06-15 18:24 ` [PATCH v8 03/16] fs/resctrl: Fix use-after-free during unmount Tony Luck
2026-06-15 18:24 ` [PATCH v8 04/16] fs/resctrl: Fix deadlock on errors during mount Tony Luck
2026-06-15 18:24 ` [PATCH v8 05/16] platform/x86/intel/pmt: Prevent unbind of PMT telemetry driver Tony Luck
2026-06-15 18:24 ` [PATCH v8 06/16] fs/resctrl: Remove redundant calls to resctrl_arch_mon_capable() Tony Luck
2026-06-15 18:24 ` Tony Luck [this message]
2026-06-15 18:24 ` [PATCH v8 08/16] fs/resctrl: Add interface to disable a monitor event Tony Luck
2026-06-15 18:24 ` [PATCH v8 09/16] x86/resctrl: Drop global 'rdt_mon_capable' flag Tony Luck
2026-06-15 18:24 ` [PATCH v8 10/16] arm,x86,fs/resctrl: Handle change in number of RMIDs on each mount Tony Luck
2026-06-15 18:24 ` [PATCH v8 11/16] x86/resctrl: Add PMT registration API for AET enumeration callbacks Tony Luck
2026-06-15 18:24 ` [PATCH v8 12/16] platform/x86/intel/pmt: Register enumeration functions with resctrl Tony Luck
2026-06-15 18:24 ` [PATCH v8 13/16] arm,x86/resctrl: Resolve INTEL_PMT_TELEMETRY symbols at runtime Tony Luck
2026-06-15 18:24 ` [PATCH v8 14/16] fs/resctrl: Call architecture hooks for every mount/unmount Tony Luck
2026-06-15 18:24 ` [PATCH v8 15/16] x86/resctrl: Simplify Kconfig options for resctrl Tony Luck
2026-06-15 18:24 ` [PATCH v8 16/16] Documentation/filesystems/resctrl: Add footnote for telemetry fstab mount caveat Tony Luck
2026-06-16 17:50 ` [PATCH v8 00/16] 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=20260615182457.14725-8-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

Powered by JetHome