[PATCH v12 00/25] Allow AET to use PMT as loadable module

From: Tony Luck

Date: Wed Sep 16 2026 - 19:13:42 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-rc3

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

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

Patch 12 "Handle change in number of RMIDs on each mount"
split into three parts (12, 13, 14 in this series)
Patch 14 "Enforce system RMID limit on AET event groups"
massively simplified, and moved later (now patch 20).

See individual patches for changes to each part.

Tony Luck (25):
x86/cpufeatures: Add missing CQM feature dependency
x86/resctrl: Check if monitoring features are supported
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: Update special case for Intel Haswell enumeration
x86/resctrl: Delete rdt_alloc_capable and rdt_mon_capable
fs/resctrl: Remove redundant calls to resctrl_{alloc,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: Allocate maximum needed rmid_ptrs[]
arm,x86,fs/resctrl: Allocate right size for L3 monitor arrays
fs/resctrl: Rebuild free RMID list on each mount
x86,fs/resctrl: Handle systems where AET is the only resource
x86/resctrl: Add PMT registration API for AET enumeration callbacks
platform/x86/intel/pmt: Register enumeration functions with resctrl
x86/resctrl: Use registered function pointers for AET enumeration
arm,x86,fs/resctrl: Enumerate AET on every resctrl mount
x86/resctrl: Enforce system RMID limit on AET
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,fs/resctrl: Document telemetry mount timing caveat

Documentation/filesystems/resctrl.rst | 18 ++-
include/linux/arm_mpam.h | 3 -
include/linux/intel_vsec.h | 14 ++
include/linux/resctrl.h | 82 ++++++++++-
arch/x86/include/asm/processor.h | 4 -
arch/x86/include/asm/resctrl.h | 24 +---
arch/x86/kernel/cpu/resctrl/internal.h | 23 +---
arch/x86/kernel/cpu/amd.c | 3 -
arch/x86/kernel/cpu/cpuid-deps.c | 1 +
arch/x86/kernel/cpu/hygon.c | 3 -
arch/x86/kernel/cpu/intel.c | 7 -
arch/x86/kernel/cpu/resctrl/core.c | 150 ++++++++++++---------
arch/x86/kernel/cpu/resctrl/intel_aet.c | 114 ++++++++++++++--
arch/x86/kernel/cpu/resctrl/monitor.c | 71 ++++++----
drivers/platform/x86/intel/pmt/telemetry.c | 47 ++++++-
drivers/resctrl/mpam_resctrl.c | 44 +++---
fs/resctrl/monitor.c | 119 +++++++++++-----
fs/resctrl/pseudo_lock.c | 6 +-
fs/resctrl/rdtgroup.c | 79 +++++++----
arch/x86/Kconfig | 15 +--
arch/x86/kernel/cpu/resctrl/Makefile | 3 +-
21 files changed, 562 insertions(+), 268 deletions(-)


base-commit: fd73f4a6659897191fa0d40695fe370925dd3780
--
2.55.0