[RFC PATCH 0/8] arm,x86,fs/resctrl: Support asymmetric L2 cache allocation
From: Tony Luck
Date: Mon Oct 26 2026 - 17:57:45 EST
RFC patch series built on top of Reinette's multiple control series[1]
The goal is to support L2 cache allocation on hybrid Intel CPUs such as
Panther Lake[2] where the P-core and E-core CPUs have different number
of supported bits for L2 cache bit mask controls. N.B. it is assumned
that the only point of asymmetry is the cache bit mask length. Other
parameters must be the same (but code doesn't check).
Overall approach is to add the per-L2 cache bitmask length to the domain
and use that everywhere instead of using a single value from the control.
Patch 1 changes the format of the per-control "max" file and should be
merged back into Reinette's multi-control series so this file can have
a consistent format from first upstream introduction.
Patches 2-5 are enumeration and preperation.
Patch 6 introduces, initializes, and uses the per-domain cache bit mask
length field (arm/MPAM change needs careful scrutiny).
Patch 7 enables asymmetric L2 for x86 CPUs that enumerate it. N.B. it
renammes the resource from "L2" to "L2A" to avoid user interface issues
with tools that expect L2 cache allocation to be symmetric.
Patch 8 suppresses creation of the "cbm_mask" file for asymmetric caches.
[1] git://git.kernel.org/pub/scm/linux/kernel/git/reinette/linux.git resctrl/controls_rfc_v2.4
[2] Typical desktop/laptop CPUs do not enumerate RDT L2 cache allocation.
This feature is found on SKUs intended for industrial applications.
Tony Luck (8):
fs/resctrl: Change UI of "max" file (merge back into earlier patches)
x86/resctrl: Add L2CAT quirk for Intel Panther Lake
x86/cpuid: Add and use defines for Intel RDT enumeration leaves
x86/resctrl: Add X86_FEATURE bits for asymmetric L2
x86/resctrl: Refactor rdt_get_cache_alloc_cfg()
arm,x86,fs/resctrl: Prepare for asymmetric caches
x86/resctrl: Check for and enable asymmetric L2 cache allocation
fs/resctrl: Suppress creation of cbm_mask info file on asymmetric
systems
Documentation/filesystems/resctrl.rst | 9 +++-
include/linux/resctrl.h | 12 ++++-
arch/x86/include/asm/cpufeatures.h | 3 ++
arch/x86/include/asm/cpuid/types.h | 4 ++
fs/resctrl/internal.h | 2 +
arch/x86/kernel/cpu/cpuid-deps.c | 2 +
arch/x86/kernel/cpu/resctrl/core.c | 64 +++++++++++++++++++++-----
arch/x86/kernel/cpu/resctrl/rdtgroup.c | 2 +-
arch/x86/kernel/cpu/scattered.c | 3 ++
drivers/resctrl/mpam_resctrl.c | 19 +++++---
fs/resctrl/ctrlmondata.c | 9 ++--
fs/resctrl/pseudo_lock.c | 2 +-
fs/resctrl/rdtgroup.c | 61 +++++++++++++++---------
13 files changed, 145 insertions(+), 47 deletions(-)
--
2.56.0