From: Zeng Heng <zengheng4@huawei.com>
To: Ben Horgan <ben.horgan@arm.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>, <fenghuay@nvidia.com>,
<gshan@redhat.com>, <james.morse@arm.com>,
<jonathan.cameron@huawei.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>, <sdonthineni@nvidia.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>,
<linux-doc@vger.kernel.org>,
Kefeng Wang <wangkefeng.wang@huawei.com>
Subject: Re: [PATCH v4 00/41] arm_mpam: Add KVM/arm64 and resctrl glue code
Date: Tue, 24 Feb 2026 19:03:28 +0800 [thread overview]
Message-ID: <28dbde39-5b21-5f2f-59f5-4500c8b0296d@huawei.com> (raw)
In-Reply-To: <b844c632-c8fc-48f1-b347-07f166019b22@arm.com>
Hi Ben,
On 2026/2/16 20:22, Ben Horgan wrote:
> Hi Zeng,
>
> On 2/14/26 09:40, Zeng Heng wrote:
>> Hi Ben,
>>
>> On 2026/2/4 5:43, Ben Horgan wrote:
> [...]
>>>
>>> Based on:
>>> [1] git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/cache
>>> (To include telemetry code which changes the resctrl arch interface)
>>>
>>> The series can be retrieved from:
>>> https://gitlab.arm.com/linux-arm/linux-bh.git mpam_resctrl_glue_v4
>>> (Final commit is a fix already in 6.19-rc8)
>>>
> [...]
>>>
>>
>> I've tested the MPAM functionality on my local Kunpeng platform. Here's
>> a summary of the results:
>
> Thank you very much for your testing and detailed report.
>
>>
>> Features enabled and verified:
>> * L2 and L3 CPBM
>> * L3 CSU
>> * L2 and L3 CDP
>> All enabled features passed functional testing as expected.
>>
>> + Tested-by: Zeng Heng <zengheng4@huawei.com>
>>
>> Features not enabled:
>> 1. MATA MBMAX partition and MBWU monitor.
>
> What's MATA here? Just memory allocation or something more specific?
>
The MATA serves as the agent for the Broadway MESI coherence protocol
among multiple L3 caches or between I/O and L3 caches. It maintains data
coherence among multiple L3 caches or between I/O and L3 caches.
As the connection module between the SoC and the memory system, the MATA
interfaces with the DMC on the DDR die. It provides the system with DDR
access paths, delivering high-bandwidth, low-latency DDR read/write
access.
On the Kunpeng chip, the MB related MSC resides in this module rather
than being directly located on the L3 cache controller.
>> Reason: These do not meet the driver's current topology>
> expectations for MB support, hence they were not initialized.
>> This behavior is expected.
>
> Is this because you have more than 1 L3 cache?
Yes, Kunpeng platform has more than 1 L3 cache.
However, the reason it is not supported here is that the current driver
does not support MATA recognition, while both Kunpeng MBM and MBA
functionalities reside in the MATA MSC side as mentioned above,
resulting in the inability to provide support.
Relevant logs are as follows:
[ 10.997406] mpam:topology_matches_l3: class 255 component 0 has
Mismatched CPU mask with L3 equivalent
[ 10.997411] mpam:mpam_resctrl_pick_mba: class 255 topology doesn't
match L3
>
>>
>> 2. L2 CSU and MBWU monitors.
>> Reason: The current MPAM driver does not support L2-related
>> functionality yet.
>
> Thanks for letting us know you have these. But, yes, unfortunately
> monitoring is only supported on the L3 at the moment.
>
>>
>> + Tested-by: Zeng Heng <zengheng4@huawei.com>
>>
>>
>> Detailed test logs are as follows:
>
> I'm confused by these logs as it looks like you aren't getting any
> monitors but you verified the L3 CSU. Also, it looks like cpor (cbpm) is
> disabled (at least partially) but you verified L2 and L3 CPBM. Is this
> across different machines?
>
The logs were of course tested on the same machine.
Since the L3 CSU/CPBM resides on the L3 cache, it can be correctly
recognized and run smoothly.
In fact, not only was L2 successfully mounted, but all L2 MSC CPBMs were
also correctly recognized. The suspicion here is that the L2
class->components were incorrectly mounted to an unknown object, which
is believed to be related to the monitoring capabilities (CSU and MBWU)
of Kunpeng L2. The root cause is still being investigated.
Resctrl mounting status:
# cat schemata
L2:4=ff;7=ff;10=ff;13=ff;16=ff;19=ff;22=ff;25=ff;29=ff;32=ff;35=ff;
38=ff;41=ff;44=ff;47=ff;50=ff;54=ff;57=ff;60=ff;63=ff;66=ff;69=ff;72=ff;
75=ff;79=ff;82=ff;85=ff;88=ff;91=ff;94=ff;97=ff;100=ff;104=ff;107=ff;
110=ff;113=ff;116=ff;119=ff;122=ff;125=ff;129=ff;132=ff;135=ff;138=ff;
141=ff;144=ff;147=ff;150=ff;154=ff;157=ff;160=ff;163=ff;166=ff;169=ff;
172=ff;175=ff;179=ff;182=ff;185=ff;188=ff;191=ff;194=ff;197=ff;200=ff;
204=ff;207=ff;210=ff;213=ff;216=ff;219=ff;222=ff;225=ff;229=ff;232=ff;
235=ff;238=ff;241=ff;244=ff;247=ff;250=ff;254=ff;257=ff;260=ff;263=ff;
266=ff;269=ff;272=ff;275=ff;279=ff;282=ff;285=ff;288=ff;291=ff;294=ff;
297=ff;300=ff
L3:1=1ffff;26=1ffff;51=1ffff;76=1ffff;101=1ffff;126=1ffff;151=1ffff;
176=1ffff;201=1ffff;226=1ffff;251=1ffff;276=1ffff
# ls mon_data/*/*
mon_data/mon_L3_01/llc_occupancy mon_data/mon_L3_151/llc_occupancy
mon_data/mon_L3_226/llc_occupancy mon_data/mon_L3_276/llc_occupancy
mon_data/mon_L3_101/llc_occupancy mon_data/mon_L3_176/llc_occupancy
mon_data/mon_L3_251/llc_occupancy mon_data/mon_L3_51/llc_occupancy
mon_data/mon_L3_126/llc_occupancy mon_data/mon_L3_201/llc_occupancy
mon_data/mon_L3_26/llc_occupancy mon_data/mon_L3_76/llc_occupancy
>>
>> Boot logs:
>> [root@localhost ~]# dmesg | grep -i mpam
>> [ 0.000000] ACPI: MPAM 0x000000007FF35018 003024 (v01 HISI HIP12
>> 00000000 HISI 20151124)
>> [ 9.509852] mpam_msc mpam_msc.64: Merging features for
>> vmsc:0xffff0800973cf5a0 |= ris:0xffff08009757ee90
>> [ 9.509859] mpam_msc mpam_msc.254: Merging features for
>> class:0xffff08009736fe50 &= vmsc:0xffff080097628520
>> [ 9.509860] mpam:__props_mismatch:
>> mpam_has_feature(mpam_feat_cpor_part, parent) = 1
>> [ 9.509864] mpam:__props_mismatch:
>> mpam_has_feature(mpam_feat_cpor_part, child) = 0
>> [ 9.509866] mpam:__props_mismatch: parent->cpbm_wd = 8
>> [ 9.509869] mpam:__props_mismatch: child->cpbm_wd = 0
>> [ 9.509871] mpam:__props_mismatch: alias = 0
>> [ 9.509873] mpam:__props_mismatch: cleared cpor_part
>
> cpor (partially) disabled?
>
>> [ 9.509876] mpam:__props_mismatch: took the min num_csu_mon
>> [ 9.509878] mpam:__props_mismatch: took the min num_mbwu_mon
>> [ 9.509881] mpam_msc mpam_msc.252: Merging features for
[...]
>> [ 10.978496] mpam:mpam_resctrl_pick_caches: class 2 cache misses CPOR
>
> No L2 cpor?
>
>> [ 10.978497] mpam:mpam_resctrl_pick_caches: class 255 is not a cache
>> [ 10.980470] mpam:mpam_resctrl_pick_mba: class 2 is before L3
>> [ 10.980472] mpam:mpam_resctrl_pick_mba: class 3 has no bandwidth control
>> [ 10.997406] mpam:topology_matches_l3: class 255 component 0 has
>> Mismatched CPU mask with L3 equivalent
>> [ 10.997411] mpam:mpam_resctrl_pick_mba: class 255 topology doesn't
>> match L3
>> [ 10.997415] mpam:mpam_resctrl_pick_counters: class 2 is before L3
>> [ 11.024109] mpam:topology_matches_l3: class 3 component 276 has
>> Mismatched CPU mask with L3 equivalent
>> [ 11.024114] mpam:class_has_usable_mbwu: monitors usable in free-
>> running mode
>
> mbwu enabled?
The fact that the number of monitors merely satisfies the conditions for
free-running mode does not imply that the MBWU functionality can be
successfully mounted. The specific reasons are explained above.
>
>> [ 11.063882] mpam:topology_matches_l3: class 255 component 0 has
>> Mismatched CPU mask with L3 equivalent
>> [ 11.113183] mpam:mpam_resctrl_alloc_domain: Skipped monitor domain
>> online - no monitors
>> [ 11.113189] MPAM enabled with 32 PARTIDs and 4 PMGs
>>
>>
Sorry for the late reply. And this is my first day back from a long
vacation.
Best regards,
Zeng Heng
next prev parent reply other threads:[~2026-02-24 11:04 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-03 21:43 Ben Horgan
2026-02-03 21:43 ` [PATCH v4 01/41] arm64/sysreg: Add MPAMSM_EL1 register Ben Horgan
2026-02-03 21:43 ` [PATCH v4 02/41] KVM: arm64: Preserve host MPAM configuration when changing traps Ben Horgan
2026-02-03 21:43 ` [PATCH v4 03/41] KVM: arm64: Make MPAMSM_EL1 accesses UNDEF Ben Horgan
2026-02-03 21:43 ` [PATCH v4 04/41] arm64: mpam: Context switch the MPAM registers Ben Horgan
2026-02-05 16:16 ` Catalin Marinas
2026-02-03 21:43 ` [PATCH v4 05/41] arm64: mpam: Re-initialise MPAM regs when CPU comes online Ben Horgan
2026-02-05 16:20 ` Catalin Marinas
2026-02-03 21:43 ` [PATCH v4 06/41] arm64: mpam: Drop the CONFIG_EXPERT restriction Ben Horgan
2026-02-05 14:08 ` Jonathan Cameron
2026-02-05 16:21 ` Catalin Marinas
2026-02-03 21:43 ` [PATCH v4 07/41] arm64: mpam: Advertise the CPUs MPAM limits to the driver Ben Horgan
2026-02-03 21:43 ` [PATCH v4 08/41] arm64: mpam: Add cpu_pm notifier to restore MPAM sysregs Ben Horgan
2026-02-05 16:54 ` Catalin Marinas
2026-02-03 21:43 ` [PATCH v4 09/41] arm64: mpam: Initialise and context switch the MPAMSM_EL1 register Ben Horgan
2026-02-05 16:55 ` Catalin Marinas
2026-02-03 21:43 ` [PATCH v4 10/41] arm64: mpam: Add helpers to change a task or cpu's MPAM PARTID/PMG values Ben Horgan
2026-02-05 16:56 ` Catalin Marinas
2026-02-03 21:43 ` [PATCH v4 11/41] KVM: arm64: Force guest EL1 to use user-space's partid configuration Ben Horgan
2026-02-03 21:43 ` [PATCH v4 12/41] KVM: arm64: Use kernel-space partid configuration for hypercalls Ben Horgan
2026-02-03 21:43 ` [PATCH v4 13/41] arm_mpam: resctrl: Add boilerplate cpuhp and domain allocation Ben Horgan
2026-02-10 22:57 ` Reinette Chatre
2026-02-11 15:36 ` Ben Horgan
2026-02-03 21:43 ` [PATCH v4 14/41] arm_mpam: resctrl: Sort the order of the domain lists Ben Horgan
2026-02-03 21:43 ` [PATCH v4 15/41] arm_mpam: resctrl: Pick the caches we will use as resctrl resources Ben Horgan
2026-02-10 23:39 ` Reinette Chatre
2026-02-11 11:05 ` Ben Horgan
2026-02-12 16:22 ` Reinette Chatre
2026-02-03 21:43 ` [PATCH v4 16/41] arm_mpam: resctrl: Implement resctrl_arch_reset_all_ctrls() Ben Horgan
2026-02-13 3:32 ` Zeng Heng
2026-02-03 21:43 ` [PATCH v4 17/41] arm_mpam: resctrl: Add resctrl_arch_get_config() Ben Horgan
2026-02-03 21:43 ` [PATCH v4 18/41] arm_mpam: resctrl: Implement helpers to update configuration Ben Horgan
2026-02-14 10:39 ` Zeng Heng
2026-02-16 14:23 ` Ben Horgan
2026-02-25 6:39 ` Zeng Heng
2026-02-03 21:43 ` [PATCH v4 19/41] arm_mpam: resctrl: Add plumbing against arm64 task and cpu hooks Ben Horgan
2026-02-03 21:43 ` [PATCH v4 20/41] arm_mpam: resctrl: Add CDP emulation Ben Horgan
2026-02-09 1:16 ` Fenghua Yu
2026-02-09 15:36 ` Ben Horgan
2026-02-11 10:50 ` Ben Horgan
2026-02-03 21:43 ` [PATCH v4 21/41] arm_mpam: resctrl: Convert to/from MPAMs fixed-point formats Ben Horgan
2026-02-03 21:43 ` [PATCH v4 22/41] arm_mpam: resctrl: Add kunit test for control format conversions Ben Horgan
2026-02-03 21:43 ` [PATCH v4 23/41] arm_mpam: resctrl: Add rmid index helpers Ben Horgan
2026-02-03 21:43 ` [PATCH v4 24/41] arm_mpam: resctrl: Add kunit test for rmid idx conversions Ben Horgan
2026-02-03 21:43 ` [PATCH v4 25/41] arm_mpam: resctrl: Wait for cacheinfo to be ready Ben Horgan
2026-02-03 21:43 ` [PATCH v4 26/41] arm_mpam: resctrl: Add support for 'MB' resource Ben Horgan
2026-02-05 16:50 ` Jonathan Cameron
2026-02-13 7:38 ` Zeng Heng
2026-02-16 13:54 ` Ben Horgan
2026-02-18 16:22 ` Ben Horgan
2026-02-18 17:17 ` Reinette Chatre
2026-02-25 8:08 ` Zeng Heng
2026-02-18 16:40 ` Ben Horgan
2026-02-10 6:20 ` Shaopeng Tan (Fujitsu)
2026-02-18 16:42 ` Ben Horgan
2026-02-03 21:43 ` [PATCH v4 27/41] arm_mpam: resctrl: Add support for csu counters Ben Horgan
2026-02-05 16:55 ` Jonathan Cameron
2026-02-03 21:43 ` [PATCH v4 28/41] arm_mpam: resctrl: Pick classes for use as mbm counters Ben Horgan
2026-02-05 16:58 ` Jonathan Cameron
2026-02-03 21:43 ` [PATCH v4 29/41] arm_mpam: resctrl: Pre-allocate free running monitors Ben Horgan
2026-02-03 21:43 ` [PATCH v4 30/41] arm_mpam: resctrl: Allow resctrl to allocate monitors Ben Horgan
2026-02-03 21:43 ` [PATCH v4 31/41] arm_mpam: resctrl: Add resctrl_arch_rmid_read() and resctrl_arch_reset_rmid() Ben Horgan
2026-02-03 21:43 ` [PATCH v4 32/41] arm_mpam: resctrl: Update the rmid reallocation limit Ben Horgan
2026-02-03 21:43 ` [PATCH v4 33/41] arm_mpam: resctrl: Add empty definitions for assorted resctrl functions Ben Horgan
2026-02-03 21:43 ` [PATCH v4 34/41] arm64: mpam: Select ARCH_HAS_CPU_RESCTRL Ben Horgan
2026-02-03 21:43 ` [PATCH v4 35/41] arm_mpam: resctrl: Call resctrl_init() on platforms that can support resctrl Ben Horgan
2026-02-03 21:43 ` [PATCH v4 36/41] arm_mpam: Add quirk framework Ben Horgan
2026-02-03 21:43 ` [PATCH v4 37/41] arm_mpam: Add workaround for T241-MPAM-1 Ben Horgan
2026-02-03 21:43 ` [PATCH v4 38/41] arm_mpam: Add workaround for T241-MPAM-4 Ben Horgan
2026-02-13 7:02 ` Shaopeng Tan (Fujitsu)
2026-02-14 1:29 ` Zeng Heng
2026-02-20 2:30 ` Shaopeng Tan (Fujitsu)
2026-02-03 21:43 ` [PATCH v4 39/41] arm_mpam: Add workaround for T241-MPAM-6 Ben Horgan
2026-02-03 21:43 ` [PATCH v4 40/41] arm_mpam: Quirk CMN-650's CSU NRDY behaviour Ben Horgan
2026-02-03 21:43 ` [PATCH v4 41/41] arm64: mpam: Add initial MPAM documentation Ben Horgan
2026-02-05 16:57 ` Catalin Marinas
2026-02-05 17:05 ` Jonathan Cameron
2026-02-18 17:02 ` Ben Horgan
2026-02-09 8:25 ` [PATCH v4 00/41] arm_mpam: Add KVM/arm64 and resctrl glue code Shaopeng Tan (Fujitsu)
2026-02-09 10:04 ` Ben Horgan
2026-02-12 14:51 ` Ben Horgan
2026-02-13 7:18 ` Shaopeng Tan (Fujitsu)
2026-02-14 9:40 ` Zeng Heng
2026-02-16 12:22 ` Ben Horgan
2026-02-24 11:03 ` Zeng Heng [this message]
2026-02-24 14:19 ` Ben Horgan
2026-02-24 15:27 ` Ben Horgan
2026-02-24 17:53 ` Ben Horgan
2026-02-26 7:17 ` 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=28dbde39-5b21-5f2f-59f5-4500c8b0296d@huawei.com \
--to=zengheng4@huawei.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=joey.gouly@arm.com \
--cc=jonathan.cameron@huawei.com \
--cc=kobak@nvidia.com \
--cc=kvmarm@lists.linux.dev \
--cc=lcherian@marvell.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.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=sdonthineni@nvidia.com \
--cc=suzuki.poulose@arm.com \
--cc=tan.shaopeng@fujitsu.com \
--cc=wangkefeng.wang@huawei.com \
--cc=will@kernel.org \
--cc=xhao@linux.alibaba.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
all inboxes | Powered by JetHome®