[RFC PATCH v2 00/10] arm_mpam: resctrl: Separate MPAM domains

Jinjie Ruan ruanjinjie at huawei.com
Mon Oct 26 20:42:03 PDT 2026



在 2026/10/20 6:07, Reinette Chatre 写道:
> RFC v1: https://lore.kernel.org/lkml/85ca29e89eacf12cfa7071249419e7cadb8f0691.1788220029.git.reinette.chatre@intel.com/
> 
> The MPAM driver represents a resctrl domain with a single structure,
> struct mpam_resctrl_dom, that holds both a control domain and a
> monitoring domain. On a system that supports both allocation and
> monitoring, one instance is created for each domain and its two
> domains are added to the resource's control and monitoring domain
> lists.
> 
> Holding both domains in one structure requires control and monitoring
> to be done at the same scope, and ties each control domain to a
> monitoring domain. This does not fit the proposed support for multiple
> controls per resource [1]. There, each control of a resource, for
> example a "min" and a "max" memory bandwidth control, has its own list
> of control domains while the resource keeps a single list of
> monitoring domains. With one structure for both, every control domain
> would come with a monitoring domain of its own, which does not reflect
> the resource.
> 
> This series gives control and monitoring domains their own structures,
> set up and torn down independently as CPUs come online and go offline,
> in preparation for supporting multiple controls per resource. Along
> the way it stops failing CPU online when a domain cannot be set up,
> and adds checks when setting up a monitoring domain.
> 
>   1-2   Preparatory cleanups of domain allocation
>   3     Do not fail CPU online when domain setup fails
>   4-6   Separate the control and monitoring domain structures
>   7-9   Checks when setting up a monitoring domain
>   10    Comment update, kept separate for review
> 
> An earlier version of the domain split was posted on its own [2]. This
> version incorporates the feedback from that discussion. It gives each
> type of domain its own structure instead of duplicating the shared
> one, sets up each domain independently instead of undoing one domain
> when setting up the other fails, and adds the checks in patches 8 and
> 9.
> 
> Patch 7 turns a WARN_ON_ONCE(0) into a warning that fires. It is a
> separate patch because it is not clear whether the silent failure was
> intended. If it was, the patch can instead drop the dead
> WARN_ON_ONCE().
> 
> This is an RFC because I am only able to compile test MPAM changes,
> which is also why the patches are small and each change is justified
> on its own. Patches can be squashed if preferred, for example patch 10
> into patches 5 and 9. Testing on MPAM hardware would be greatly
> appreciated, as is any other feedback.

Hi Reinette,

I tested it on a QEMU with MPAM rebased on v7.3-rc6 and all pass:

1、Resctrl mounts,L3/L2 each report 32 closids (control IDs)
2、Cache and memory bandwidth controls
3、Priority, min, max, option and hard-limit: write, read back, and the

   emulated hardware shows the same value
4、CDP mode and usage/bandwidth counters
5、All builds pass without warnings: arm64/x86_64, debug on/off,
   self-tests on/off, resctrl off, ACPI off

Test cases: https://github.com/ruanjinjie-eng/mpam_testcase/tree/qemu

Tested-by: Jinjie Ruan ruanjinjie at huawei.com

> 
> The series is based on the for-next/mpam branch of the arm64 tree:
> git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git
> 
> [1] https://lore.kernel.org/lkml/d258a32f-12d5-464d-abe9-4720fb3e44b3@intel.com/
> [2] https://lore.kernel.org/lkml/85ca29e89eacf12cfa7071249419e7cadb8f0691.1788220029.git.reinette.chatre@intel.com/
> 
> Reinette Chatre (10):
>   arm_mpam: resctrl: Use find_component() when allocating a domain
>   arm_mpam: resctrl: Rename ctrl_comp in mpam_resctrl_alloc_domain()
>   arm_mpam: resctrl: Do not fail CPU online when domain setup fails
>   arm_mpam: resctrl: Split control and monitoring domain setup into
>     helpers
>   arm_mpam: resctrl: Give the monitoring domain its own structure
>   arm_mpam: resctrl: Rename struct mpam_resctrl_dom to
>     mpam_resctrl_ctrl_dom
>   arm_mpam: resctrl: Warn when no monitoring component is found for a
>     CPU
>   arm_mpam: resctrl: Require a component for each monitoring event
>   arm_mpam: resctrl: Require monitoring components to cover the same
>     CPUs
>   arm_mpam: resctrl: Update the comment on monitoring domain setup
> 
>  drivers/resctrl/mpam_devices.c  |   2 +-
>  drivers/resctrl/mpam_internal.h |  11 +-
>  drivers/resctrl/mpam_resctrl.c  | 325 +++++++++++++++++---------------
>  3 files changed, 181 insertions(+), 157 deletions(-)
> 
> 
> base-commit: 8ea457f746d915d55f78b43d33b1cd618f3d93ad

-- 
Best regards,
Jinjie




More information about the linux-arm-kernel mailing list