From: Zeng Heng <zengheng4@huawei.com>
To: "Shaopeng Tan (Fujitsu)" <tan.shaopeng@fujitsu.com>,
"'ben.horgan@arm.com'" <ben.horgan@arm.com>,
"'james.morse@arm.com'" <james.morse@arm.com>,
"'Dave.Martin@arm.com'" <Dave.Martin@arm.com>,
"'reinette.chatre@intel.com'" <reinette.chatre@intel.com>,
"'fenghuay@nvidia.com'" <fenghuay@nvidia.com>
Cc: "'dave.hansen@linux.intel.com'" <dave.hansen@linux.intel.com>,
"'tglx@kernel.org'" <tglx@kernel.org>,
"'mingo@redhat.com'" <mingo@redhat.com>,
"'hpa@zytor.com'" <hpa@zytor.com>,
"'bp@alien8.de'" <bp@alien8.de>,
"'tony.luck@intel.com'" <tony.luck@intel.com>,
"'babu.moger@amd.com'" <babu.moger@amd.com>,
"'x86@kernel.org'" <x86@kernel.org>,
"'linux-kernel@vger.kernel.org'" <linux-kernel@vger.kernel.org>,
"'wangkefeng.wang@huawei.com'" <wangkefeng.wang@huawei.com>
Subject: Re: [PATCH v3 3/9] arm_mpam: Disable Narrow-PARTID when MBA lacks support
Date: Sat, 11 Apr 2026 14:50:18 +0800 [thread overview]
Message-ID: <30d37733-db55-f29f-5bbf-1b69ed0846e5@huawei.com> (raw)
In-Reply-To: <TY4PR01MB16930DBD9718318E697FE237C8B592@TY4PR01MB16930.jpnprd01.prod.outlook.com>
On 2026/4/10 9:07, Shaopeng Tan (Fujitsu) wrote:
> Hello Zeng Heng,
>
>> MPAM supports mixed systems with MSCs that may or may not implement
>> Narrow-PARTID. However, when the MBA MSC uses percentage-based
>> throttling (non-bitmap partition control) and lacks Narrow-PARTID support,
>> resctrl cannot correctly apply control group configurations across multiple
>> PARTIDs.
>>
>> Since there is no straightforward way to program compatible control values in
>> this scenario, disable Narrow-PARTID system-wide when detected. The
>> detection occurs at initialization time on the first call to get_num_reqpartid()
>> from mpam_resctrl_pick_counters(), which is guaranteed to occur after
>> mpam_resctrl_pick_mba() has set up the MBA resource class.
>>
>> If MBA MSCs lack Narrow-PARTID support, get_num_reqpartid() falls back to
>> returning the number of internal PARTIDs (mpam_intpartid_max).
>>
>> Signed-off-by: Zeng Heng <zengheng4@huawei.com>
>> ---
>> drivers/resctrl/mpam_resctrl.c | 38
>> +++++++++++++++++++++++++++++++++-
>> 1 file changed, 37 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/resctrl/mpam_resctrl.c b/drivers/resctrl/mpam_resctrl.c
>> index 222ea1d199e1..1b18c095cfce 100644
>> --- a/drivers/resctrl/mpam_resctrl.c
>> +++ b/drivers/resctrl/mpam_resctrl.c
>> @@ -240,9 +240,45 @@ u32 resctrl_arch_get_num_closid(struct rdt_resource
>> *ignored)
>> return mpam_intpartid_max + 1;
>> }
>>
>> +/*
>> + * Determine the effective number of PARTIDs available for resctrl.
>> + *
>> + * This function performs a one-time check to determine if
>> +Narrow-PARTID
>> + * can be used. It must be called after mpam_resctrl_pick_mba() has
>> + * initialized the MBA resource, as the MBA class properties are used
>> + * to detect Narrow-PARTID support.
>> + *
>> + * The first call occurs in mpam_resctrl_pick_counters(), ensuring the
>> + * prerequisite initialization is complete.
>> + */
>> +static u32 get_num_reqpartid(void)
>> +{
>> + struct mpam_resctrl_res *res;
>> + struct rdt_resource *r_mba;
>> + struct mpam_props *cprops;
>> + static bool first = true;
>> +
>> + if (first) {
>> + r_mba = resctrl_arch_get_resource(RDT_RESOURCE_MBA);
>> + res = container_of(r_mba, struct mpam_resctrl_res,
>> resctrl_res);
>> + if (!res->class)
>> + goto out;
>> +
>> + /* If MBA MSCs lack Narrow-PARTID support, roll back. */
>> + cprops = &res->class->props;
>> + if (!mpam_has_feature(mpam_feat_partid_nrw, cprops))
>> + mpam_partid_max = mpam_intpartid_max;
>
> Isn't max reqpartid stored in mpam_partid_max? Why is a rollback necessary?
>
"In order to be able to assign multiple reqPARTIDs freely to resource
control groups, it is necessary that all MSCs that are used by resctrl
either implement Narrow PARTID (so that PARTIDs can be remapped
explicitly) or otherwise only have controls whose resource regulation
is stateless and so whose behaviour would not be affected by splitting
a control group across multiple PARTIDs."
Best regards,
Zeng Heng
next prev parent reply other threads:[~2026-04-11 6:50 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-17 13:21 [PATCH v3 0/9] arm_mpam: Introduce Narrow-PARTID feature Zeng Heng
2026-03-17 13:21 ` [PATCH v3 1/9] fs/resctrl: Fix MPAM Partid parsing errors by preserving CDP state during umount Zeng Heng
2026-03-20 17:07 ` Ben Horgan
2026-03-21 4:11 ` Zeng Heng
2026-03-21 6:39 ` Zeng Heng
2026-03-17 13:21 ` [PATCH v3 2/9] arm_mpam: Add intPARTID and reqPARTID support for narrow PARTID feature Zeng Heng
2026-03-17 13:21 ` [PATCH v3 3/9] arm_mpam: Disable Narrow-PARTID when MBA lacks support Zeng Heng
2026-04-10 1:07 ` Shaopeng Tan (Fujitsu)
2026-04-11 6:50 ` Zeng Heng [this message]
2026-04-13 9:12 ` Zeng Heng
2026-03-17 13:21 ` [PATCH v3 4/9] arm_mpam: Refactor rmid to reqPARTID/PMG mapping Zeng Heng
2026-03-17 13:21 ` [PATCH v3 5/9] arm_mpam: Propagate control group config to sub-monitoring groups Zeng Heng
2026-03-17 13:21 ` [PATCH v3 6/9] fs/resctrl: Add rmid_entry state helpers Zeng Heng
2026-03-17 13:21 ` [PATCH v3 7/9] arm_mpam: Implement dynamic reqPARTID allocation for monitoring groups Zeng Heng
2026-03-17 13:21 ` [PATCH v3 8/9] fs/resctrl: Wire up rmid expansion and reclaim functions Zeng Heng
2026-03-17 13:21 ` [PATCH v3 9/9] arm64/mpam: Add mpam_sync_config() for dynamic rmid expansion Zeng Heng
2026-03-20 16:14 ` [PATCH v3 0/9] arm_mpam: Introduce Narrow-PARTID feature Ben Horgan
2026-03-21 7:18 ` Zeng Heng
2026-04-10 0:13 ` Shaopeng Tan (Fujitsu)
2026-04-11 6:32 ` Zeng Heng
2026-04-16 6:11 ` Shaopeng Tan (Fujitsu)
2026-04-20 8:19 ` Zeng Heng
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=30d37733-db55-f29f-5bbf-1b69ed0846e5@huawei.com \
--to=zengheng4@huawei.com \
--cc=Dave.Martin@arm.com \
--cc=babu.moger@amd.com \
--cc=ben.horgan@arm.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=fenghuay@nvidia.com \
--cc=hpa@zytor.com \
--cc=james.morse@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=reinette.chatre@intel.com \
--cc=tan.shaopeng@fujitsu.com \
--cc=tglx@kernel.org \
--cc=tony.luck@intel.com \
--cc=wangkefeng.wang@huawei.com \
--cc=x86@kernel.org \
/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
all inboxes | Powered by JetHome®