[RFC PATCH 0/6] x86/resctrl: Introduce MMIO-based CMT access for Enhanced RDT
From: Chen Yu
Date: Wed May 27 2026 - 05:35:19 EST
Intel Enhanced Resource Director Technology (ERDT) extends the existing
RDT framework with two major capabilities:
1. MMIO-based access to monitoring and allocation registers, replacing
the legacy MSR-based interface.
2. Region-aware RDT for fine-grained control over different tiers of
memory (e.g., CXL.mem, DDR).
This is described in the Intel RDT Architecture Specification:
https://cdrdv2-public.intel.com/789566/356688-intel-rdt-arch-spec.pdf
This patch set focuses on the first part: enabling MMIO-based access for
Cache Monitoring Technology (CMT), while CAT/MBM/MBA are still using MSR.
The platform advertises the MMIO register layout through the ACPI ERDT
(Enhanced Resource Director Technology) table, which contains sub-tables
describing per-domain register regions for monitoring and allocation.
With ERDT, L3 cache occupancy counters are read via MMIO rather than
MSR, allowing the reads to be performed from any CPU without requiring
cross-CPU IPIs. This series parses the relevant ACPI sub-tables (RMDD,
CMRC), prepares the resctrl monitor infrastructure for MMIO-based reads,
and adds initial support for reading L3 occupancy via the CMRC interface.
kselftest of CMT and L3_CAT has passed with minor adjustment at
https://lore.kernel.org/lkml/20260523101715.3964456-1-yu.c.chen@xxxxxxxxx/.
Anil S Keshavamurthy (1):
x86/resctrl: Parse ACPI ERDT table and map RMDD domains by L3 cache ID
Chen Yu (4):
x86/resctrl: Parse ACPI CMRC table
x86/resctrl: Rename prev_msr to prev_mon_val
x86/resctrl: Refactor the monitor read function
x86/resctrl: Add support for L3 occupancy monitoring via RMID MMIO
read
Tony Luck (1):
fs/resctrl: Do not invoke smp_processor_id() in preemptible context
arch/x86/Kconfig | 4 +-
arch/x86/include/asm/resctrl.h | 4 +
arch/x86/kernel/cpu/resctrl/Makefile | 1 +
arch/x86/kernel/cpu/resctrl/core.c | 5 +-
arch/x86/kernel/cpu/resctrl/erdt.c | 451 +++++++++++++++++++++++++
arch/x86/kernel/cpu/resctrl/internal.h | 11 +-
arch/x86/kernel/cpu/resctrl/monitor.c | 64 ++--
fs/resctrl/monitor.c | 38 ++-
8 files changed, 538 insertions(+), 40 deletions(-)
create mode 100644 arch/x86/kernel/cpu/resctrl/erdt.c
--
2.25.1