|
|
Log in / Subscribe / Register

Allow AET to use PMT as loadable module

From:  Tony Luck <tony.luck-AT-intel.com>
To:  Fenghua Yu <fenghuay-AT-nvidia.com>, Reinette Chatre <reinette.chatre-AT-intel.com>, Maciej Wieczor-Retman <maciej.wieczor-retman-AT-intel.com>, Peter Newman <peternewman-AT-google.com>, James Morse <james.morse-AT-arm.com>, Babu Moger <babu.moger-AT-amd.com>, Drew Fustini <dfustini-AT-baylibre.com>, Dave Martin <Dave.Martin-AT-arm.com>, Chen Yu <yu.c.chen-AT-intel.com>, David E Box <david.e.box-AT-intel.com>, x86-AT-kernel.org
Subject:  [PATCH v9 00/12] Allow AET to use PMT as loadable module
Date:  Wed, 01 Jul 2026 14:35:41 -0700
Message-ID:  <20260701213553.15222-1-tony.luck@intel.com>
Cc:  Christoph Hellwig <hch-AT-infradead.org>, linux-kernel-AT-vger.kernel.org, patches-AT-lists.linux.dev, Tony Luck <tony.luck-AT-intel.com>
Archive-link:  Article

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.2-rc1 plus Reinette's "Fix long-standing issues"[1]
and "Improve resctrl quality and consistency"[2] series.

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

---

Changes since v8[3]:

0001:	Suppress_bind_attrs for intel_vsec as well as intel_telemetry
0008:	PROBE_FORCE_SYNCHRONOUS and register/unregister in init/exit
0009:	Remove broken atomic ops introduced in v8. Handle repeat mount
	attempts in intel_aet.c - See Sashiko v8 review[4].
0012:	Add example udev and systemd config files to mount resctrl

Link: https://lore.kernel.org/lkml/cover.1781029125.git.reinett... [1]
Link: https://lore.kernel.org/all/cover.1782857711.git.reinette... [2]
Link: https://lore.kernel.org/lkml/20260615182457.14725-1-tony.... [3]
Link: https://sashiko.dev/#/patchset/20260615182457.14725-1-ton... [4]

Tony Luck (12):
  platform/x86/intel/{pmt,vsec}: Prevent unbind via sysfs
  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: Document telemetry mount timing
    caveat

 Documentation/filesystems/resctrl.rst      | 60 +++++++++++++-
 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         | 57 +++++++++++--
 arch/x86/kernel/cpu/resctrl/intel_aet.c    | 96 +++++++++++++++++++---
 arch/x86/kernel/cpu/resctrl/monitor.c      |  6 --
 drivers/platform/x86/intel/pmt/telemetry.c | 13 ++-
 drivers/platform/x86/intel/vsec.c          |  3 +
 drivers/resctrl/mpam_resctrl.c             |  9 ++
 fs/resctrl/monitor.c                       | 93 ++++++++++++++-------
 fs/resctrl/rdtgroup.c                      | 16 ++--
 arch/x86/Kconfig                           | 15 +---
 arch/x86/kernel/cpu/resctrl/Makefile       |  2 +-
 14 files changed, 371 insertions(+), 91 deletions(-)

-- 
2.54.0




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds