[PATCH v8 00/16] Allow AET to use PMT as loadable module

From: Tony Luck

Date: Mon Jun 15 2026 - 14:26:58 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 configration 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.

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

---

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

Rebased to v7.1

Patches 1-4 updated from latest (v5) series from Reinette:
Link: https://lore.kernel.org/all/cover.1781029125.git.reinette.chatre@xxxxxxxx
Those four patches had their own review and (hopefully) will be included
in TIP tree during this v7.2-rc* cycle.

Patch 5 is new to resolve the issue that the PMT driver could be unbound
from the pmt_telemtry module which would unmap all the MMIO register
space. Discussed offline with David Box, but needs his Ack/Review tag
here.

Patches 6-14 and 16 all have updates based on review comments see the
individual patches for change log after the "---"

Reinette Chatre (1):
fs/resctrl: Fix deadlock on errors during mount

Tony Luck (15):
fs/resctrl: Move functions to avoid forward references in subsequent
fixes
fs/resctrl: Free mon_data structures on rdt_get_tree() failure
fs/resctrl: Fix use-after-free during unmount
platform/x86/intel/pmt: Prevent unbind of PMT telemetry driver
fs/resctrl: Remove redundant calls to resctrl_arch_mon_capable()
x86/resctrl: Honor rdt=perf option to force enable AET perf events
fs/resctrl: Add interface to disable a monitor event
x86/resctrl: Drop global 'rdt_mon_capable' flag
arm,x86,fs/resctrl: Handle change in number of RMIDs on each mount
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 architecture hooks for every mount/unmount
x86/resctrl: Simplify Kconfig options for resctrl
Documentation/filesystems/resctrl: Add footnote for telemetry fstab
mount caveat

Documentation/filesystems/resctrl.rst | 7 +-
include/linux/resctrl.h | 47 ++-
arch/x86/include/asm/resctrl.h | 21 +-
arch/x86/kernel/cpu/resctrl/internal.h | 24 +-
arch/x86/kernel/cpu/resctrl/core.c | 69 ++-
arch/x86/kernel/cpu/resctrl/intel_aet.c | 91 +++-
arch/x86/kernel/cpu/resctrl/monitor.c | 6 -
drivers/platform/x86/intel/pmt/telemetry.c | 9 +
drivers/resctrl/mpam_resctrl.c | 9 +
fs/resctrl/monitor.c | 93 +++--
fs/resctrl/rdtgroup.c | 464 ++++++++++++---------
arch/x86/Kconfig | 15 +-
arch/x86/kernel/cpu/resctrl/Makefile | 2 +-
13 files changed, 565 insertions(+), 292 deletions(-)


base-commit: 8cd9520d35a6c38db6567e97dd93b1f11f185dc6
--
2.54.0