Using symbol_request() eliminates the AET (Application Energy Telemetry)
requirement that INTEL_TELEMETY_PMT and INTEL_TPMI be configured as built-in
to the base kernel.
To make this work cleanly, refactor resctrl code so that architecture
code is made aware of every mount/unmount operation so that state can
be cleaned up on each unmount (instead of the notianal call from
resctrl_arch_exit()).
Signed-off-by: Tony Luck <tony.luck@intel.com>
AI-review-of-v3: https://sashiko.dev/#/patchset/20260327230208.18094-1-tony.luck%40intel.com
Changes since v3[1]
Link: [1] https://lore.kernel.org/all/20260327230208.18094-1-tony.luck@intel.com/
1) Switched from symbol_get() to symbol_request() so that required
modules will be auto-loaded when needed instead of mounting the resctrl
file system without AET events.
2) Add warnings to resctrl_{en,dis}able_mon_event() to ensure they are
only used when the resctrl file system is not mounted.
3) Move the newly adding locking around mount/unmount from architecture
to file system code. This makes it much simpler, avoiding obtaining a
mutex in one function and releasing in another.
4) Reset rdt_resource::mon_capable to false as part of cleanup on
unmount or for other mount failures. I have not updated rdt_mon_capable
which technically needs to be an integer, incremented on mount,
decremented on unmount to keep track of how many monitoring resources
are enabled in the current mount cycle.
Tony Luck (7):
platform/x86/intel/pmt: Export PMT enumeration functions as GPL
x86/resctrl: Drop setting of event_group::force_off when insufficient
RMIDs
fs/resctrl: Add interface to disable a monitor event
fs,x86/resctrl: Add architecture hooks for every mount/unmount
x86/resctrl: Resolve PMT and TPMI symbols at runtime
x86/resctrl: Delete intel_aet_exit()
x86/resctrl: Downgrade dependency of AET on INTEL_PMT
include/linux/resctrl.h | 13 ++-
arch/x86/kernel/cpu/resctrl/internal.h | 10 +-
arch/x86/kernel/cpu/resctrl/core.c | 16 +++-
arch/x86/kernel/cpu/resctrl/intel_aet.c | 102 ++++++++++++++++++---
drivers/platform/x86/intel/pmt/telemetry.c | 4 +-
fs/resctrl/monitor.c | 16 ++++
fs/resctrl/rdtgroup.c | 43 ++++++---
arch/x86/Kconfig | 2 +-
8 files changed, 172 insertions(+), 34 deletions(-)
base-commit: 7aaa8047eafd0bd628065b15757d9b48c5f9c07d
--
2.53.0