[PATCH v11 00/23] Allow AET to use PMT as loadable module

From: Tony Luck

Date: Mon Aug 31 2026 - 15:03:30 EST


Requiring INTEL_PMT_TELEMETRY=y to enable AET is a functional workaround
to enable enumeration of Application Energy Telemetry (AET) events, but
unacceptable to many users. It results in increased configuration complexity,
increased kernel memory footprint and inability to patch problems by unloading
a module and loading an updated version.

Add a registration function to the AET code that can be used by
INTEL_PMT_TELEMETRY to provide the enumeration functions.

INTEL_PMT_TELEMETRY can be loaded/unloaded independently of
resctrl file system mount/unmount. Perform enumeration on
every mount and cleanup on every unmount.

Patch series based on v7.3-rc1

Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx>

Changes since v10:
Link: https://lore.kernel.org/all/20260729172752.11561-1-tony.luck@xxxxxxxxx/

Several cleanups prepended to the series based on v10 discussion in
patches 1..8. See individual patches for changes to each part.

Tony Luck (23):
x86/resctrl: Give better names to X86_FEATURE flags for monitoring
x86/resctrl: Check if monitoring features are enabled
x86/resctrl: Enumerate monitor features in rdt_get_l3_mon_config()
x86/resctrl: Apply Intel MBM quirk from rdt_get_l3_mon_config()
x86/resctrl: Delete resctrl_cpu_detect()
arm,x86,fs/resctrl: Replace architecture
resctrl_arch_{alloc,mon}_capable()
x86/resctrl: Add special case for Intel Haswell enumeration
x86/resctrl: Delete rdt_alloc_capable and rdt_mon_capable
fs/resctrl: Remove redundant calls to resctrl_mon_capable()
x86/resctrl: Honor rdt=perf option to force enable AET perf events
fs/resctrl: Add interface to disable a monitor event
arm,x86,fs/resctrl: Handle change in number of RMIDs on each mount
x86/resctrl: Handle systems when AET is the only resource
x86/resctrl: Enforce system RMID limit on AET event groups
x86/resctrl: Add PMT registration API for AET enumeration callbacks
platform/x86/intel/pmt: Register enumeration functions with resctrl
arm,x86/resctrl: Resolve INTEL_PMT_TELEMETRY symbols at runtime
fs/resctrl: Call arch code for every mount
x86/resctrl: Export interface to report telemetry unbind/remove
platform/x86/intel/pmt: Inform resctrl when MMIO maps are being
removed
x86/resctrl: Require 64-bit x86 for resctrl support
x86/resctrl: Simplify Kconfig options for resctrl
x86/resctrl: Document telemetry mount timing caveat

Documentation/arch/x86/cpuinfo.rst | 2 +-
Documentation/filesystems/resctrl.rst | 60 +++++++-
include/linux/arm_mpam.h | 3 -
include/linux/intel_vsec.h | 14 ++
include/linux/resctrl.h | 74 +++++++++-
arch/x86/include/asm/cpufeatures.h | 4 +-
arch/x86/include/asm/processor.h | 4 -
arch/x86/include/asm/resctrl.h | 24 +--
arch/x86/kernel/cpu/resctrl/internal.h | 24 +--
tools/arch/x86/include/asm/cpufeatures.h | 4 +-
arch/x86/kernel/cpu/amd.c | 3 -
arch/x86/kernel/cpu/cpuid-deps.c | 8 +-
arch/x86/kernel/cpu/hygon.c | 3 -
arch/x86/kernel/cpu/intel.c | 7 -
arch/x86/kernel/cpu/resctrl/core.c | 162 +++++++++++----------
arch/x86/kernel/cpu/resctrl/intel_aet.c | 132 +++++++++++++++--
arch/x86/kernel/cpu/resctrl/monitor.c | 71 ++++++---
arch/x86/kernel/cpu/scattered.c | 2 +-
drivers/platform/x86/intel/pmt/telemetry.c | 46 +++++-
drivers/resctrl/mpam_resctrl.c | 44 +++---
fs/resctrl/monitor.c | 112 ++++++++++----
fs/resctrl/pseudo_lock.c | 6 +-
fs/resctrl/rdtgroup.c | 76 ++++++----
arch/x86/Kconfig | 15 +-
arch/x86/kernel/cpu/resctrl/Makefile | 2 +-
25 files changed, 620 insertions(+), 282 deletions(-)


base-commit: cee9395acd8043be0644b25c34bfa86623f2b935
--
2.55.0