mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH RFC v1 0/6] arm_mpam,resctrl: expose MPAM MBW_MAX hard limit
@ 2026-11-09 21:29 Fenghua Yu
  2026-11-09 21:29 ` [PATCH RFC v1 1/6] resctrl: wire MB_MAXHLM schemata parsing and group setup Fenghua Yu
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Fenghua Yu @ 2026-11-09 21:29 UTC (permalink / raw)
  To: Reinette Chatre, Tony Luck, Ben Horgan, James Morse, Will Deacon,
	Dave Martin, Catalin Marinas, Shaopeng Tan, Chen Yu, Babu Moger,
	Drew Fustini, Vikram Sethi, Shanker Donthineni, Newton Liu,
	Richard Cheng
  Cc: linux-kernel, linux-arm-kernel, Fenghua Yu

This series exposes the ARM MPAM MBW_MAX HARDLIM bit through resctrl.
The MBA schemata line sets the maximum bandwidth. HARDLIM selects
whether that maximum is a hard limit. It is a per-domain 0/1 value, not
another percentage, so it is a separate control on the MBA resource
rather than a second bandwidth percentage.

MPAMF_MBW_IDR.MAX_LIM reports how the implementation encodes that limit.
When the probed value is 0, this kernel treats HARDLIM as read/write.
When MAX_LIM is nonzero, or the platform has no hard-limit control, the
schemata line is omitted.

The line follows the MSC, the same way the bandwidth line does. A cache
MSC uses cache ids:

	       MB:1=100;2=100
	MB_MAXHLM:1=0;2=0

A memory-level MSC uses NUMA node ids:

	       MB_NODE:0=100;1=100
	MB_MAXHLM_NODE:0=0;1=0

Please advise if "MB_MAXHLM" on cache ids and "MB_MAXHLM_NODE" on
NUMA ids meet the new naming conventions.

0 clears HARDLIM (soft limit). 1 sets HARDLIM. New groups start with the
hard limit off. info/MB/schemata/MB_MAXHLM/max and
info/MB/schemata/MB_MAXHLM_NODE/max are 1. The bandwidth control's max
stays 100. The control directory under info/MB/schemata/ is MB_MAXHLM or
MB_MAXHLM_NODE.

The 6 patches are grouped as follows:

1. resctrl hard-limit control (patch 1)

   Parse MB_MAXHLM as a 0/1 value on the MBA resource, and initialize
   new groups with HARDLIM clear.

2. MPAM probe and config (patches 2-3)

   Read MAX_LIM from MPAMF_MBW_IDR, derive HARDLIM read/write when that
   encoding is 0, and keep the HARDLIM bit in mpam_config so later
   MBW_MAX programming does not drop it.

3. Wire the control (patch 4)

   Create the MAXHLM control on the MBA resource when HARDLIM is
   read/write, and read and write it through resctrl_arch_get_config()
   and resctrl_arch_update_one().

4. Node scope and documentation (patches 5-6)

   On a memory-level MSC, name the control MB_MAXHLM_NODE, set the
   resource scope to the NUMA node, and give the hard-limit control the
   range 0..1. Document both schemata lines.

The branch is on top CPU-less RFC V3 and resource controls RFC V2:
https://github.com/fyu1/linux/commits/hlim.rfc.v1

Testing

Brought up on an ARM MPAM platform whose MBA resource is a memory-level
MSC. resctrl mounts, and schemata lists MB_NODE and MB_MAXHLM_NODE with
NUMA node ids. Not tested on x86 beyond compilation of the resctrl
changes.

Fenghua Yu (6):
  resctrl: wire MB_MAXHLM schemata parsing and group setup
  arm_mpam: resctrl: probe MPAMF_MBW_IDR MAX_LIM and hardlim_rw
  arm_mpam: resctrl: track MBW max hard-limit in config
  arm_mpam: resctrl: add MAXHLM control on the MBA resource
  arm_mpam: Add MB_MAXHLM_NODE and Node scope
  Documentation: resctrl: document MB_MAXHLM for MPAM MBA

 Documentation/filesystems/resctrl.rst |  28 ++++
 drivers/resctrl/mpam_devices.c        |  67 ++++++++-
 drivers/resctrl/mpam_internal.h       |   8 ++
 drivers/resctrl/mpam_resctrl.c        | 191 +++++++++++++++++++++-----
 fs/resctrl/ctrlmondata.c              |  36 +++++
 fs/resctrl/rdtgroup.c                 |  17 +++
 include/linux/resctrl.h               |  16 ++-
 7 files changed, 325 insertions(+), 38 deletions(-)

-- 
2.53.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-11-09 21:29 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-09 21:29 [PATCH RFC v1 0/6] arm_mpam,resctrl: expose MPAM MBW_MAX hard limit Fenghua Yu
2026-11-09 21:29 ` [PATCH RFC v1 1/6] resctrl: wire MB_MAXHLM schemata parsing and group setup Fenghua Yu
2026-11-09 21:29 ` [PATCH RFC v1 2/6] arm_mpam: resctrl: probe MPAMF_MBW_IDR MAX_LIM and hardlim_rw Fenghua Yu
2026-11-09 21:29 ` [PATCH RFC v1 3/6] arm_mpam: resctrl: track MBW max hard-limit in config Fenghua Yu
2026-11-09 21:29 ` [PATCH RFC v1 4/6] arm_mpam: resctrl: add MAXHLM control on the MBA resource Fenghua Yu
2026-11-09 21:29 ` [PATCH RFC v1 5/6] arm_mpam: Add MB_MAXHLM_NODE and Node scope Fenghua Yu
2026-11-09 21:29 ` [PATCH RFC v1 6/6] Documentation: resctrl: document MB_MAXHLM for MPAM MBA Fenghua Yu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®