From: Shanker Donthineni <sdonthineni@nvidia.com>
To: Ben Horgan <ben.horgan@arm.com>,
Jonathan Cameron <jonathan.cameron@huawei.com>,
"fenghuay@nvidia.com" <fenghuay@nvidia.com>
Cc: amitsinght@marvell.com, baisheng.gao@unisoc.com,
baolin.wang@linux.alibaba.com, carl@os.amperecomputing.com,
dave.martin@arm.com, david@kernel.org, dfustini@baylibre.com,
gshan@redhat.com, james.morse@arm.com, kobak@nvidia.com,
lcherian@marvell.com, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, peternewman@google.com,
punit.agrawal@oss.qualcomm.com, quic_jiles@quicinc.com,
reinette.chatre@intel.com, rohit.mathew@arm.com,
scott@os.amperecomputing.com, tan.shaopeng@fujitsu.com,
xhao@linux.alibaba.com, catalin.marinas@arm.com, will@kernel.org,
corbet@lwn.net, maz@kernel.org, oupton@kernel.org,
joey.gouly@arm.com, suzuki.poulose@arm.com,
kvmarm@lists.linux.dev, Zeng Heng <zengheng4@huawei.com>,
jasjits@nvidia.com, Jason Sequeira <jsequeira@nvidia.com>,
Vikram Sethi <vsethi@nvidia.com>
Subject: Re: [PATCH v3 41/47] arm_mpam: Generate a configuration for min controls
Date: Mon, 2 Feb 2026 10:34:18 -0600 [thread overview]
Message-ID: <ca45ea06-53fa-4010-86c6-66213243b636@nvidia.com> (raw)
In-Reply-To: <3ae02b5b-22ab-4778-a29d-709ca3163f58@arm.com>
Hi Ben,
On 2/2/2026 4:21 AM, Ben Horgan wrote:
> External email: Use caution opening links or attachments
>
>
> Hi Shanker,
>
> On 1/31/26 02:30, Shanker Donthineni wrote:
>> Hi Ben,
>>
>> On 1/30/2026 8:17 AM, Ben Horgan wrote:
>>> External email: Use caution opening links or attachments
>>>
>>>
>>> Hi Fenghua, Jonathan,
>>>
>>> On 1/13/26 15:39, Jonathan Cameron wrote:
>>>> On Mon, 12 Jan 2026 16:59:08 +0000
>>>> Ben Horgan <ben.horgan@arm.com> wrote:
>>>>
>>>>> From: James Morse <james.morse@arm.com>
>>>>>
>>>>> MPAM supports a minimum and maximum control for memory bandwidth. The
>>>>> purpose of the minimum control is to give priority to tasks that are
>>>>> below
>>>>> their minimum value. Resctrl only provides one value for the bandwidth
>>>>> configuration, which is used for the maximum.
>>>>>
>>>>>
>>>>> Hence, I'll drop this patch, and update the mbw_min default to be
>>>>> 0xFFFF
>>>>> and for the value not to change even if mbw_max changes. I think this
>>>>> leaves us in the best position going forward without any heuristics
>>>>> that
>>>>> may come back to bite us later when proper support for a schema
>>>>> supporting mbw_min is added to resctrl.
>> Background: I previouslyshared original fix(seecodesnippet below) with
>> James Morse
>> ~2 years ago to address the errata, which explicitly recommends usinga
>> 5% gap for
>> mitigation of the Hardware issue (the problem described in commit text
>> of T241-MPAM-4)
>>
>> For some reason theoriginalimplementationwas splitinto two patches:
>> - Generic change applicable toall chips
>> - Specific fixfor Graceerrata T241-MPAM-4
>> Issue: Dropping this patch impacts[PATCH v3 45/47] forthe errata fix. If
>> removalis
>> necessary, please mergethis changeinto the T241-MPAM-4-specific patch.
>
> What's the behaviour on T241 when MBW_MIN is always 0xFFFF?
Memory bandwidth throttling will not function correctly. The MPAM hardware
monitors MIN and MAX values for each active partition to maintain memory
bandwidth usage between MBW_MIN and MBW_MAX. Therefore, MBW_MIN must be
less than MBW_MAX (IMO, setting MBW_MIN to always 0xFFFF is incorrect)
Grace errata T241-MPAM-4 has two issues:
- MBW_MIN must be greater than 0 (WAR set to one when when it's zero) - In the Grace implementation of memory-bandwidth partitioning (MPAM),
in the absence of contention for bandwidth, the minimum bandwidth
setting can affect the amount of achieved bandwidth. Specifically,
the achieved bandwidth in the absence of contention can settle to any
value between the values of MIN and MAX. This means if the gap between
MIN and MAX is large then the BW can settle closer to MIN. To achieve
BW closer to MAX in the absence of contention, software should configure
a relatively narrow gap between MPAMCFG_MBW_MIN and MPAMCFG_MBW_MAX.
The recommendation is to use a 5% gap, corresponding to an absolute
difference of (0xFFFF * 0.05) = 0xCCC between MPAMCFG_MBW_MIN and
MPAMCFG_MBW_MAX.
> I'm worried if we make a policy decision of how to set MBW_MIN based on
> MBW_MAX for this platform then we won't be able to support a
> configurable MBW_MIN in the future for this platform.
Yes, we can't support generic programmable MBW_MIN for Grace chip. The
currentresctrl interface doesnot exposeMBW_MIN, preventingusers from
configuring the recommended5% gap. Without this interfacesupport,
theonly wayto applytheworkaround is through driver-level changes.
> As when MBW_MIN
> support is added in resctrl the user's configuration for this platform
> would change meaning on kernel upgrade.
What is the timelineforaddingMBW_MIN support? We have two options.
Option-A: Keep the current WAR 5% gap and don't allow users to program MBW_MIN.
Option-B:Remove the5% gap workaround and relyon usersto program MBW_MIN
accordingto the Grace recommendations whentheinterfacebecomes available.
We'll prefer option-B.
Thanks,
Shanker
next prev parent reply other threads:[~2026-02-02 16:34 UTC|newest]
Thread overview: 160+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-12 16:58 [PATCH v3 00/47] arm_mpam: Add KVM/arm64 and resctrl glue code Ben Horgan
2026-01-12 16:58 ` [PATCH v3 01/47] arm_mpam: Remove duplicate linux/srcu.h header Ben Horgan
2026-01-12 17:13 ` Fenghua Yu
2026-01-15 2:12 ` Gavin Shan
2026-01-12 16:58 ` [PATCH v3 02/47] arm_mpam: Use non-atomic bitops when modifying feature bitmap Ben Horgan
2026-01-15 2:14 ` Gavin Shan
2026-01-16 11:57 ` Catalin Marinas
2026-01-16 12:02 ` Ben Horgan
2026-01-16 12:12 ` Ben Horgan
2026-01-16 15:51 ` Catalin Marinas
2026-01-12 16:58 ` [PATCH v3 03/47] arm64/sysreg: Add MPAMSM_EL1 register Ben Horgan
2026-01-15 2:16 ` Gavin Shan
2026-01-15 17:59 ` Catalin Marinas
2026-01-12 16:58 ` [PATCH v3 04/47] KVM: arm64: Preserve host MPAM configuration when changing traps Ben Horgan
2026-01-15 2:33 ` Gavin Shan
2026-01-12 16:58 ` [PATCH v3 05/47] KVM: arm64: Make MPAMSM_EL1 accesses UNDEF Ben Horgan
2026-01-15 2:34 ` Gavin Shan
2026-01-12 16:58 ` [PATCH v3 06/47] arm64: mpam: Context switch the MPAM registers Ben Horgan
2026-01-15 6:47 ` Gavin Shan
2026-01-15 12:09 ` Jonathan Cameron
2026-01-19 14:00 ` Ben Horgan
2026-01-20 1:42 ` Gavin Shan
2026-01-15 17:58 ` Catalin Marinas
2026-01-19 12:23 ` Ben Horgan
2026-01-23 14:29 ` Catalin Marinas
2026-01-26 14:30 ` Ben Horgan
2026-01-26 14:50 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 07/47] arm64: mpam: Re-initialise MPAM regs when CPU comes online Ben Horgan
2026-01-15 6:50 ` Gavin Shan
2026-01-15 18:14 ` Catalin Marinas
2026-01-19 13:38 ` Ben Horgan
2026-01-19 14:22 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 08/47] arm64: mpam: Advertise the CPUs MPAM limits to the driver Ben Horgan
2026-01-15 18:16 ` Catalin Marinas
2026-01-19 6:37 ` Gavin Shan
2026-01-19 14:49 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 09/47] arm64: mpam: Add cpu_pm notifier to restore MPAM sysregs Ben Horgan
2026-01-15 18:20 ` Catalin Marinas
2026-01-19 6:40 ` Gavin Shan
2026-01-19 6:50 ` Gavin Shan
2026-01-19 15:08 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 10/47] arm64: mpam: Initialise and context switch the MPAMSM_EL1 register Ben Horgan
2026-01-15 19:08 ` Catalin Marinas
2026-01-19 13:40 ` Ben Horgan
2026-01-19 6:51 ` Gavin Shan
2026-01-19 15:31 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 11/47] arm64: mpam: Add helpers to change a task or cpu's MPAM PARTID/PMG values Ben Horgan
2026-01-15 19:13 ` Catalin Marinas
2026-01-19 6:56 ` Gavin Shan
2026-01-19 15:47 ` Ben Horgan
2026-01-19 7:01 ` Gavin Shan
2026-01-19 15:49 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 12/47] KVM: arm64: Force guest EL1 to use user-space's partid configuration Ben Horgan
2026-01-13 14:19 ` Jonathan Cameron
2026-01-14 12:06 ` Marc Zyngier
2026-01-14 14:50 ` Ben Horgan
2026-01-15 9:05 ` Marc Zyngier
2026-01-15 11:14 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 13/47] KVM: arm64: Use kernel-space partid configuration for hypercalls Ben Horgan
2026-01-13 14:21 ` Jonathan Cameron
2026-01-13 14:35 ` Ben Horgan
2026-01-14 12:09 ` Marc Zyngier
2026-01-14 14:39 ` Ben Horgan
2026-01-14 16:50 ` Ben Horgan
2026-01-14 17:50 ` Marc Zyngier
2026-01-12 16:58 ` [PATCH v3 14/47] arm_mpam: resctrl: Add boilerplate cpuhp and domain allocation Ben Horgan
2026-01-13 16:49 ` Reinette Chatre
2026-01-19 17:20 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 15/47] arm_mpam: resctrl: Sort the order of the domain lists Ben Horgan
2026-01-12 16:58 ` [PATCH v3 16/47] arm_mpam: resctrl: Pick the caches we will use as resctrl resources Ben Horgan
2026-01-12 16:58 ` [PATCH v3 17/47] arm_mpam: resctrl: Implement resctrl_arch_reset_all_ctrls() Ben Horgan
2026-01-13 14:46 ` Jonathan Cameron
2026-01-13 14:58 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 18/47] arm_mpam: resctrl: Add resctrl_arch_get_config() Ben Horgan
2026-01-12 16:58 ` [PATCH v3 19/47] arm_mpam: resctrl: Implement helpers to update configuration Ben Horgan
2026-01-12 16:58 ` [PATCH v3 20/47] arm_mpam: resctrl: Add plumbing against arm64 task and cpu hooks Ben Horgan
2026-01-12 16:58 ` [PATCH v3 21/47] arm_mpam: resctrl: Add CDP emulation Ben Horgan
2026-01-12 16:58 ` [PATCH v3 22/47] arm_mpam: resctrl: Convert to/from MPAMs fixed-point formats Ben Horgan
2026-01-12 16:58 ` [PATCH v3 23/47] arm_mpam: resctrl: Add kunit test for control format conversions Ben Horgan
2026-01-12 16:58 ` [PATCH v3 24/47] arm_mpam: resctrl: Add rmid index helpers Ben Horgan
2026-01-13 14:55 ` Jonathan Cameron
2026-01-12 16:58 ` [PATCH v3 25/47] arm_mpam: resctrl: Add kunit test for rmid idx conversions Ben Horgan
2026-01-13 14:59 ` Jonathan Cameron
2026-01-12 16:58 ` [PATCH v3 26/47] arm_mpam: resctrl: Wait for cacheinfo to be ready Ben Horgan
2026-01-13 15:01 ` Jonathan Cameron
2026-01-13 15:15 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 27/47] arm_mpam: resctrl: Add support for 'MB' resource Ben Horgan
2026-01-13 15:06 ` Jonathan Cameron
2026-01-13 22:18 ` Reinette Chatre
2026-01-19 11:53 ` Gavin Shan
2026-01-19 13:53 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 28/47] arm_mpam: resctrl: Add support for csu counters Ben Horgan
2026-01-13 23:14 ` Reinette Chatre
2026-01-15 15:43 ` Ben Horgan
2026-01-15 18:54 ` Reinette Chatre
2026-01-16 10:29 ` Ben Horgan
2026-01-20 15:28 ` Peter Newman
2026-01-21 17:58 ` Reinette Chatre
2026-01-30 11:07 ` Ben Horgan
2026-01-30 11:19 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 29/47] arm_mpam: resctrl: Pick classes for use as mbm counters Ben Horgan
2026-01-15 15:49 ` Peter Newman
2026-01-19 12:04 ` James Morse
2026-01-19 12:47 ` Peter Newman
2026-01-26 16:00 ` Ben Horgan
2026-01-30 13:04 ` Peter Newman
2026-01-30 14:38 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 30/47] arm_mpam: resctrl: Pre-allocate free running monitors Ben Horgan
2026-01-13 15:10 ` Jonathan Cameron
2026-01-19 11:57 ` Gavin Shan
2026-01-19 20:27 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 31/47] arm_mpam: resctrl: Pre-allocate assignable monitors Ben Horgan
2026-01-16 10:34 ` Shaopeng Tan (Fujitsu)
2026-01-16 11:04 ` Ben Horgan
2026-01-19 20:34 ` Ben Horgan
2026-01-12 16:58 ` [PATCH v3 32/47] arm_mpam: resctrl: Add kunit test for ABMC/CDP interactions Ben Horgan
2026-01-13 15:26 ` Jonathan Cameron
2026-01-12 16:59 ` [PATCH v3 33/47] arm_mpam: resctrl: Add resctrl_arch_config_cntr() for ABMC use Ben Horgan
2026-01-12 16:59 ` [PATCH v3 34/47] arm_mpam: resctrl: Allow resctrl to allocate monitors Ben Horgan
2026-01-12 16:59 ` [PATCH v3 35/47] arm_mpam: resctrl: Add resctrl_arch_rmid_read() and resctrl_arch_reset_rmid() Ben Horgan
2026-01-12 16:59 ` [PATCH v3 36/47] arm_mpam: resctrl: Add resctrl_arch_cntr_read() & resctrl_arch_reset_cntr() Ben Horgan
2026-01-12 16:59 ` [PATCH v3 37/47] arm_mpam: resctrl: Update the rmid reallocation limit Ben Horgan
2026-01-15 10:05 ` Shaopeng Tan (Fujitsu)
2026-01-15 16:02 ` Ben Horgan
2026-01-12 16:59 ` [PATCH v3 38/47] arm_mpam: resctrl: Add empty definitions for assorted resctrl functions Ben Horgan
2026-01-12 16:59 ` [PATCH v3 39/47] arm64: mpam: Select ARCH_HAS_CPU_RESCTRL Ben Horgan
2026-01-15 19:16 ` Catalin Marinas
2026-01-12 16:59 ` [PATCH v3 40/47] arm_mpam: resctrl: Call resctrl_init() on platforms that can support resctrl Ben Horgan
2026-01-12 16:59 ` [PATCH v3 41/47] arm_mpam: Generate a configuration for min controls Ben Horgan
2026-01-13 15:39 ` Jonathan Cameron
2026-01-30 14:17 ` Ben Horgan
2026-01-31 2:30 ` Shanker Donthineni
2026-02-02 10:21 ` Ben Horgan
2026-02-02 16:34 ` Shanker Donthineni [this message]
2026-02-03 9:33 ` Ben Horgan
2026-01-12 16:59 ` [PATCH v3 42/47] arm_mpam: resctrl: Add kunit test for mbw min control generation Ben Horgan
2026-01-13 15:43 ` Jonathan Cameron
2026-01-12 16:59 ` [PATCH v3 43/47] arm_mpam: Add quirk framework Ben Horgan
2026-01-19 12:14 ` Gavin Shan
2026-01-19 20:48 ` Ben Horgan
2026-01-12 16:59 ` [PATCH v3 44/47] arm_mpam: Add workaround for T241-MPAM-1 Ben Horgan
2026-01-19 12:16 ` Gavin Shan
2026-01-19 20:54 ` Ben Horgan
2026-01-12 16:59 ` [PATCH v3 45/47] arm_mpam: Add workaround for T241-MPAM-4 Ben Horgan
2026-01-15 23:20 ` Fenghua Yu
2026-01-19 20:56 ` Ben Horgan
2026-01-29 22:14 ` Fenghua Yu
2026-01-30 12:21 ` Ben Horgan
2026-01-12 16:59 ` [PATCH v3 46/47] arm_mpam: Add workaround for T241-MPAM-6 Ben Horgan
2026-01-12 16:59 ` [PATCH v3 47/47] arm_mpam: Quirk CMN-650's CSU NRDY behaviour Ben Horgan
2026-01-19 12:18 ` Gavin Shan
2026-01-19 20:58 ` Ben Horgan
2026-01-14 6:51 ` [PATCH RESEND v2 0/45] arm_mpam: Add KVM/arm64 and resctrl glue code Zeng Heng
2026-01-15 14:37 ` Ben Horgan
2026-01-15 11:14 ` [PATCH v3 00/47] " Peter Newman
2026-01-15 11:36 ` Ben Horgan
2026-01-16 10:47 ` Shaopeng Tan (Fujitsu)
2026-01-16 11:05 ` Ben Horgan
2026-01-16 15:47 ` (subset) " Catalin Marinas
2026-01-19 1:30 ` Gavin Shan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ca45ea06-53fa-4010-86c6-66213243b636@nvidia.com \
--to=sdonthineni@nvidia.com \
--cc=amitsinght@marvell.com \
--cc=baisheng.gao@unisoc.com \
--cc=baolin.wang@linux.alibaba.com \
--cc=ben.horgan@arm.com \
--cc=carl@os.amperecomputing.com \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=dave.martin@arm.com \
--cc=david@kernel.org \
--cc=dfustini@baylibre.com \
--cc=fenghuay@nvidia.com \
--cc=gshan@redhat.com \
--cc=james.morse@arm.com \
--cc=jasjits@nvidia.com \
--cc=joey.gouly@arm.com \
--cc=jonathan.cameron@huawei.com \
--cc=jsequeira@nvidia.com \
--cc=kobak@nvidia.com \
--cc=kvmarm@lists.linux.dev \
--cc=lcherian@marvell.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maz@kernel.org \
--cc=oupton@kernel.org \
--cc=peternewman@google.com \
--cc=punit.agrawal@oss.qualcomm.com \
--cc=quic_jiles@quicinc.com \
--cc=reinette.chatre@intel.com \
--cc=rohit.mathew@arm.com \
--cc=scott@os.amperecomputing.com \
--cc=suzuki.poulose@arm.com \
--cc=tan.shaopeng@fujitsu.com \
--cc=vsethi@nvidia.com \
--cc=will@kernel.org \
--cc=xhao@linux.alibaba.com \
--cc=zengheng4@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox