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

Tony Luck posted 23 patches 3 weeks, 4 days ago
There is a newer version of this series
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(-)
[PATCH v11 00/23] Allow AET to use PMT as loadable module
Posted by Tony Luck 3 weeks, 4 days ago
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@intel.com>

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

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
Re: [PATCH v11 00/23] Allow AET to use PMT as loadable module
Posted by Luck, Tony 3 weeks, 3 days ago
On Mon, Aug 31, 2026 at 10:43:58AM -0700, Tony Luck wrote:
> 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.

Summary of Sashiko findings:
https://sashiko.dev/#/patchset/20260831174421.13921-1-tony.luck%40intel.com

 [PATCH v11 09/23] fs/resctrl: Remove redundant calls to resctrl_mon_capable()

Pre-existing issue that systems supporting only monitoring will not
report any tasks in the default group. Issue is real. Sashiko suggests
removing the check for resctrl_alloc_capable(). I should have done this
anyway for the same optimization reasons that I removed resctrl_mon_capable()
from is_rmid_match().


 [PATCH v11 16/23] platform/x86/intel/pmt: Register enumeration functions with resctrl

Pre-existing potential race. Sashiko suggests calling intel_pmt_get_features()
under ep_lock.


 [PATCH v11 18/23] fs/resctrl: Call arch code for every mount

Two broken bits, both with easy (I hope) fixes:

1) rdt_get_tree() should "return ret;" not "return 0;" 
2) resctrl_arch_unmount() called in error path before cpus_read_unlock()
   could deadlock. Move the resctrl_arch_unmount() after the unlock.


 [PATCH v11 20/23] platform/x86/intel/pmt: Inform resctrl when MMIO maps are being removed

Sashiko is concerned about non-PCI telemetry end points. Not a real
issue. Endpoints are enumerated using PCIe DVSEC - so they have to be
PCIe devices.

Pollution of kernel log with dev_warn(). Ilpo also flagged this. It's a
"can't happen" test. I will downgrade severity to dev_dbg()

Pre-existing issue in telemetry driver that other places need to handle
unbind/remove of devices and unmap of MMIO.

 [PATCH v11 23/23] x86/resctrl: Document telemetry mount timing caveat

I'm still struggling to come up with a systemd/udev way to delay
mounting the resctrl file system until after telemetry enumeration
is complete. Sashiko says there are gaps in the example I provide.
The whole namespace issue is a mystery to me :-(

-Tony