[PATCH v3 0/8] arm-mpam: Add basic device tree support for resctrl
Yin Li
yin.li at oss.qualcomm.com
Wed Oct 7 23:41:09 PDT 2026
This is the first formal, non-RFC posting of the MPAM DT support series,
following two RFC rounds of review.
Arm Memory System Resource Partitioning and Monitoring (MPAM) with
resctrl requires device tree (DT) support before it can be enabled on
DT-based platforms. This series provides the foundational DT binding and
parsing support for MPAM.
The patches are based on earlier work by James Morse, Shanker
Donthineni and Rob Herring, with fixes and additions on top.
Standalone fixes to existing mainline code (placed first, independent
of the DT work):
- arm_mpam: fix the RIS index range check
- arm_mpam: fix the MSC MMIO window size (off-by-one)
Inherited (authorship preserved, with fixes noted in each patch):
- dt-bindings: MPAM MSC binding [1]
- cacheinfo: expose cache-id generation from a device_node [2]
- arm_mpam: device tree support for MSC probing [3]
- arm_mpam: memory controller MSC support on DT platforms [4]
New on top:
- arm_mpam: derive MSC accessibility from per-RIS nodes as a fallback
[1] https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git/commit/?h=mpam/snapshot+extras/v6.18-rc1&id=b38bed339681
[2] https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git/commit/?h=mpam/snapshot+extras/v6.18-rc1&id=2af39084438c
[3] https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git/commit/?h=mpam/snapshot+extras/v6.18-rc1&id=a6ab8b6c77cb
[4] https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git/commit/?h=mpam/snapshot+extras/v6.18-rc1&id=c1be40782ace
DT affinity model
-----------------
An MSC's CPU affinity is derived from its parent device (cache or memory
node). When the parent is a generic container, a per-RIS fallback
resolves affinity from a 'cpus' or 'arm,mpam-device' phandle on each RIS
node.
The Kaanapali DTS patch (marked DNM) is a local verification example
only: production firmware does not expose MSC register access to the OS,
so it is disabled by default and cannot be upstreamed as-is. It is
included as a reference for other platform DT authors.
Signed-off-by: Yin Li <yin.li at oss.qualcomm.com>
---
Changes since RFC v2:
- Fold the binding schema/example fixes into the binding patch.
- Fold the foundling MSC fix into the DT support patch; remove the
unnecessary parent cache availability check from
mpam_dt_create_foundling_msc() to keep it consistent with
mpam_dt_count_msc().
- Remove the #ifdef CONFIG_OF guard around the cache_of_calculate_id()
prototype in cacheinfo.h.
- Remove the [Yin Li:] annotation from the cacheinfo patch.
- Rebase onto next-20260918.
Changes since RFC v1:
- Fold fixes to inherited patches into their respective patches with
[Yin Li: ...] annotations, as requested by Ben and Andre.
- Move the RIS index range-check and MSC MMIO window size fixes to the
front as standalone fixes with Fixes: tags.
- MSC MMIO window size: genuine off-by-one fix; the ">" bounds checks
include the access width and are kept as-is.
- ris_idx: validate range after of_property_read_reg() and keep u8
downstream, instead of widening the call chain to u64.
- cache-id sentinel: keep ~0U notation, leave cacheinfo.c unchanged,
replace unsigned long with u32.
- Convert mpam_get_cpumask_from_cache_id() and the cache/component-id
variables from unsigned long to u32.
- Fold the device_node refcount fix (of_node_get()), reviewed by Andre
Przywara in RFC v1, into the DT support and memory-controller MSC
patches.
- Drop the "clear mask on error" patch.
Previous versions (RFC):
RFC v2: https://lore.kernel.org/all/20260914-mpam-resctrl-dt-knp-support-v2-0-bf6645bb2f65@oss.qualcomm.com/
RFC v1: https://lore.kernel.org/all/20260811-mpam-resctrl-dt-knp-support-v1-0-ea6397bead59@oss.qualcomm.com/
To: James Morse <james.morse at arm.com>
To: Rob Herring <robh at kernel.org>
To: Shanker Donthineni <sdonthineni at nvidia.com>
To: Ben Horgan <ben.horgan at arm.com>
To: Krzysztof Kozlowski <krzk+dt at kernel.org>
To: Conor Dooley <conor+dt at kernel.org>
To: Catalin Marinas <catalin.marinas at arm.com>
To: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
To: "Rafael J. Wysocki" <rafael at kernel.org>
To: Danilo Krummrich <dakr at kernel.org>
To: Reinette Chatre <reinette.chatre at intel.com>
To: Fenghua Yu <fenghuay at nvidia.com>
To: Jonathan Cameron <jic23 at kernel.org>
To: Bjorn Andersson <andersson at kernel.org>
To: Konrad Dybcio <konradybcio at kernel.org>
To: Gavin Shan <gshan at redhat.com>
Cc: Andre Przywara <andre.przywara at arm.com>
Cc: Drew Fustini <fustini at kernel.org>
Cc: Ilpo Järvinen <ilpo.jarvinen at linux.intel.com>
Cc: Shaopeng Tan <tan.shaopeng at jp.fujitsu.com>
Cc: trilok.soni at oss.qualcomm.com
Cc: aiqun.yu at oss.qualcomm.com
Cc: ganapatrao.kulkarni at oss.qualcomm.com
Cc: Srivathsa L Rao <srivathsa.rao at oss.qualcomm.com>
Cc: Huang Yiwei <huang.yiwei at oss.qualcomm.com>
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-arm-msm at vger.kernel.org
Cc: linux-kernel at vger.kernel.org
Cc: driver-core at lists.linux.dev
Cc: devicetree at vger.kernel.org
---
James Morse (2):
cacheinfo: Expose the code to generate a cache-id from a device_node
arm_mpam: Add device tree support for MSC probing
Rob Herring (1):
dt-bindings: arm: Add MPAM MSC binding
Shanker Donthineni (1):
arm_mpam: Add support for memory controller MSC on DT platforms
Yin Li (4):
arm_mpam: Fix the RIS index range check in mpam_ris_create_locked
arm_mpam: Fix MSC MMIO window size off-by-one with resource_size()
arm_mpam: Support MSC accessibility derivation from RIS nodes
[DNM] arm64: dts: qcom: kaanapali: Add MPAM MSC nodes for the L2 caches
.../devicetree/bindings/arm/arm,mpam-msc.yaml | 202 +++++++++++
arch/arm64/boot/dts/qcom/kaanapali.dtsi | 50 ++-
drivers/base/cacheinfo.c | 17 +-
drivers/resctrl/mpam_devices.c | 397 +++++++++++++++++++--
drivers/resctrl/mpam_internal.h | 2 +-
include/linux/cacheinfo.h | 1 +
6 files changed, 631 insertions(+), 38 deletions(-)
---
base-commit: 3f2425f5b5bbbdd991ca9cdfd5502e68d8895998
change-id: 20260731-mpam-resctrl-dt-knp-support-c15dcc3a4a98
Best regards,
--
Yin Li <yin.li at oss.qualcomm.com>
More information about the linux-arm-kernel
mailing list