[PATCH v4 00/41] arm_mpam: Add KVM/arm64 and resctrl glue code

Zeng Heng zengheng4 at huawei.com
Sat Feb 14 01:40:21 PST 2026


Hi Ben,

On 2026/2/4 5:43, Ben Horgan wrote:
> This new version of the mpam missing pieces series has a few significant
> changes in the mpam driver part of the series. The heuristics for deciding
> if features should be exposed are tightened. This is to fix some
> inaccuracies and avoid overcommitting before needed - shout if this changes
> anything on your platform. The final patch adds documentation which
> explains which features you should expect. The ABMC emulation is dropped
> for the moment as it requires resctrl changes to support for MPAM without
> breaking the abi. The default 5% gap for min_bw is dropped in favour of a
> simple default (kept for grace). The series is based on x86/resctrl [1] as
> resctrl has telemetry patches queued which change the arch interface.
> 
> Fixes that are in 6.19-rc8 are dropped from the series but
> b9f5c38e4af1 ("arm_mpam: Use non-atomic bitops when modifying feature bitmap")
> is required to avoid an alignment fault in the kunit tests.
> 
> Thank you for all the testing and reviewing so far! It all helps.
> 
> Changelogs in patches
> 
>>From James' cover letter:
> 
> This is the missing piece to make MPAM usable resctrl in user-space. This has
> shed its debugfs code and the read/write 'event configuration' for the monitors
> to make the series smaller.
> 
> This adds the arch code and KVM support first. I anticipate the whole thing
> going via arm64, but if goes via tip instead, the an immutable branch with those
> patches should be easy to do.
> 
> Generally the resctrl glue code works by picking what MPAM features it can expose
> from the MPAM drive, then configuring the structs that back the resctrl helpers.
> If your platform is sufficiently Xeon shaped, you should be able to get L2/L3 CPOR
> bitmaps exposed via resctrl. CSU counters work if they are on/after the L3. MBWU
> counters are considerably more hairy, and depend on hueristics around the topology,
> and a bunch of stuff trying to emulate ABMC.
> If it didn't pick what you wanted it to, please share the debug messages produced
> when enabling dynamic debug and booting with:
> | dyndbg="file mpam_resctrl.c +pl"
> 
> I've not found a platform that can test all the behaviours around the monitors,
> so this is where I'd expect the most bugs.
> 
> The MPAM spec that describes all the system and MMIO registers can be found here:
> https://developer.arm.com/documentation/ddi0598/db/?lang=en
> (Ignored the 'RETIRED' warning - that is just arm moving the documentation around.
>   This document has the best overview)
> 
> 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)
> 
> v3 can be found at:
> https://lore.kernel.org/linux-arm-kernel/20260112165914.4086692-1-ben.horgan@arm.com/
> 
> v2 can be found at:
> https://lore.kernel.org/linux-arm-kernel/20251219181147.3404071-1-ben.horgan@arm.com/
> 
> rfc can be found at:
> https://lore.kernel.org/linux-arm-kernel/20251205215901.17772-1-james.morse@arm.com/
> 
> 

I've tested the MPAM functionality on my local Kunpeng platform. Here's
a summary of the results:

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 at huawei.com>

Features not enabled:
   1. MATA MBMAX partition and MBWU monitor.
      Reason: These do not meet the driver's current topology
      expectations for MB support, hence they were not initialized.
      This behavior is expected.

   2. L2 CSU and MBWU monitors.
      Reason: The current MPAM driver does not support L2-related
      functionality yet.

+ Tested-by: Zeng Heng <zengheng4 at huawei.com>


Detailed test logs are as follows:

Boot logs:
[root at 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
[    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 
class:0xffff08009736fe50 &= vmsc:0xffff0800976284a0
[    9.509884] mpam_msc mpam_msc.250: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff080097628420
[    9.509887] mpam_msc mpam_msc.248: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800976283a0
[    9.509889] mpam_msc mpam_msc.246: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff080097628320
[    9.509892] mpam_msc mpam_msc.244: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800976282a0
[    9.509894] mpam_msc mpam_msc.242: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff080097628220
[    9.509897] mpam_msc mpam_msc.240: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800976281a0
[    9.509900] mpam_msc mpam_msc.238: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff080097628120
[    9.509902] mpam_msc mpam_msc.236: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800976280a0
[    9.509905] mpam_msc mpam_msc.234: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff080097628020
[    9.509907] mpam_msc mpam_msc.232: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975affa0
[    9.509910] mpam_msc mpam_msc.230: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aff20
[    9.509913] mpam_msc mpam_msc.228: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975afea0
[    9.509915] mpam_msc mpam_msc.226: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975afe20
[    9.509918] mpam_msc mpam_msc.224: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975afda0
[    9.509920] mpam_msc mpam_msc.222: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975afd20
[    9.509923] mpam_msc mpam_msc.220: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975afca0
[    9.509925] mpam_msc mpam_msc.218: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975afc20
[    9.509928] mpam_msc mpam_msc.216: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975afba0
[    9.509931] mpam_msc mpam_msc.214: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975afb20
[    9.509933] mpam_msc mpam_msc.212: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975afaa0
[    9.509936] mpam_msc mpam_msc.210: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975afa20
[    9.509938] mpam_msc mpam_msc.208: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af9a0
[    9.509941] mpam_msc mpam_msc.206: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af920
[    9.509943] mpam_msc mpam_msc.204: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af8a0
[    9.509946] mpam_msc mpam_msc.202: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af820
[    9.509949] mpam_msc mpam_msc.200: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af7a0
[    9.509951] mpam_msc mpam_msc.198: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af720
[    9.509954] mpam_msc mpam_msc.196: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af6a0
[    9.509956] mpam_msc mpam_msc.194: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af620
[    9.509959] mpam_msc mpam_msc.192: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af5a0
[    9.509962] mpam_msc mpam_msc.190: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af520
[    9.509964] mpam_msc mpam_msc.188: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af4a0
[    9.509967] mpam_msc mpam_msc.186: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af420
[    9.509969] mpam_msc mpam_msc.184: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af3a0
[    9.509972] mpam_msc mpam_msc.182: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af320
[    9.509974] mpam_msc mpam_msc.180: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af2a0
[    9.509977] mpam_msc mpam_msc.178: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af220
[    9.509980] mpam_msc mpam_msc.176: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af1a0
[    9.509982] mpam_msc mpam_msc.174: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af120
[    9.509985] mpam_msc mpam_msc.172: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af0a0
[    9.509987] mpam_msc mpam_msc.170: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975af020
[    9.509990] mpam_msc mpam_msc.168: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aefa0
[    9.509993] mpam_msc mpam_msc.166: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aef20
[    9.509995] mpam_msc mpam_msc.164: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aeea0
[    9.509998] mpam_msc mpam_msc.162: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aee20
[    9.510000] mpam_msc mpam_msc.160: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aeda0
[    9.510003] mpam_msc mpam_msc.158: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aed20
[    9.510005] mpam_msc mpam_msc.156: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aeca0
[    9.510008] mpam_msc mpam_msc.154: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aec20
[    9.510010] mpam_msc mpam_msc.152: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aeba0
[    9.510013] mpam_msc mpam_msc.150: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aeb20
[    9.510016] mpam_msc mpam_msc.148: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aeaa0
[    9.510018] mpam_msc mpam_msc.146: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975aea20
[    9.510021] mpam_msc mpam_msc.144: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae9a0
[    9.510023] mpam_msc mpam_msc.142: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae920
[    9.510026] mpam_msc mpam_msc.140: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae8a0
[    9.510029] mpam_msc mpam_msc.138: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae820
[    9.510031] mpam_msc mpam_msc.136: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae7a0
[    9.510034] mpam_msc mpam_msc.134: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae720
[    9.510036] mpam_msc mpam_msc.132: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae6a0
[    9.510039] mpam_msc mpam_msc.130: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae620
[    9.510041] mpam_msc mpam_msc.128: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae5a0
[    9.510044] mpam_msc mpam_msc.126: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae520
[    9.510047] mpam_msc mpam_msc.124: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae4a0
[    9.510049] mpam_msc mpam_msc.122: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae420
[    9.510052] mpam_msc mpam_msc.120: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae3a0
[    9.510054] mpam_msc mpam_msc.118: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae2a0
[    9.510057] mpam_msc mpam_msc.116: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae220
[    9.510060] mpam_msc mpam_msc.114: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae1a0
[    9.510062] mpam_msc mpam_msc.112: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae120
[    9.510065] mpam_msc mpam_msc.110: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae0a0
[    9.510067] mpam_msc mpam_msc.108: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800975ae020
[    9.510070] mpam_msc mpam_msc.106: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff08009729c720
[    9.510073] mpam_msc mpam_msc.104: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cffa0
[    9.510075] mpam_msc mpam_msc.102: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cff20
[    9.510078] mpam_msc mpam_msc.100: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cfea0
[    9.510080] mpam_msc mpam_msc.98: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cfe20
[    9.510083] mpam_msc mpam_msc.96: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cfda0
[    9.510086] mpam_msc mpam_msc.94: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cfd20
[    9.510088] mpam_msc mpam_msc.92: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cfca0
[    9.510091] mpam_msc mpam_msc.90: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cfc20
[    9.510094] mpam_msc mpam_msc.88: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cfba0
[    9.510096] mpam_msc mpam_msc.86: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cfb20
[    9.510099] mpam_msc mpam_msc.84: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cfaa0
[    9.510102] mpam_msc mpam_msc.82: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cfa20
[    9.510104] mpam_msc mpam_msc.80: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cf9a0
[    9.510107] mpam_msc mpam_msc.78: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cf920
[    9.510109] mpam_msc mpam_msc.76: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cf8a0
[    9.510112] mpam_msc mpam_msc.74: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cf820
[    9.510115] mpam_msc mpam_msc.72: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cf7a0
[    9.510117] mpam_msc mpam_msc.70: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cf720
[    9.510120] mpam_msc mpam_msc.68: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cf6a0
[    9.510123] mpam_msc mpam_msc.66: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cf620
[    9.510125] mpam_msc mpam_msc.64: Merging features for 
class:0xffff08009736fe50 &= vmsc:0xffff0800973cf5a0
[    9.510129] mpam_msc mpam_msc.62: Merging features for 
vmsc:0xffff0800973cf520 |= ris:0xffff08009757ea90
[    9.510132] mpam_msc mpam_msc.60: Merging features for 
vmsc:0xffff0800973cf4a0 |= ris:0xffff08009757e690
[    9.510133] mpam_msc mpam_msc.58: Merging features for 
vmsc:0xffff0800973cf420 |= ris:0xffff08009757e290
[    9.510136] mpam_msc mpam_msc.56: Merging features for 
vmsc:0xffff0800973cf3a0 |= ris:0xffff08009757de90
[    9.510139] mpam_msc mpam_msc.54: Merging features for 
vmsc:0xffff0800973cf320 |= ris:0xffff08009757da90
[    9.510141] mpam_msc mpam_msc.52: Merging features for 
vmsc:0xffff0800973cf2a0 |= ris:0xffff08009757d690
[    9.510144] mpam_msc mpam_msc.50: Merging features for 
vmsc:0xffff0800973cf220 |= ris:0xffff08009757d290
[    9.510146] mpam_msc mpam_msc.48: Merging features for 
vmsc:0xffff0800973cf1a0 |= ris:0xffff08009757ce90
[    9.510149] mpam_msc mpam_msc.46: Merging features for 
vmsc:0xffff0800973cf120 |= ris:0xffff08009757ca90
[    9.510152] mpam_msc mpam_msc.44: Merging features for 
vmsc:0xffff0800973cf0a0 |= ris:0xffff08009757c690
[    9.510154] mpam_msc mpam_msc.42: Merging features for 
vmsc:0xffff0800973cf020 |= ris:0xffff08009757c290
[    9.510157] mpam_msc mpam_msc.40: Merging features for 
vmsc:0xffff0800973cefa0 |= ris:0xffff08009757be90
[    9.510160] mpam_msc mpam_msc.38: Merging features for 
vmsc:0xffff0800973cef20 |= ris:0xffff08009757ba90
[    9.510162] mpam_msc mpam_msc.36: Merging features for 
vmsc:0xffff0800973ceea0 |= ris:0xffff08009757b690
[    9.510166] mpam_msc mpam_msc.34: Merging features for 
vmsc:0xffff0800973cee20 |= ris:0xffff08009757b290
[    9.510167] mpam_msc mpam_msc.32: Merging features for 
vmsc:0xffff0800973ceda0 |= ris:0xffff08009757ae90
[    9.510170] mpam_msc mpam_msc.30: Merging features for 
vmsc:0xffff0800973ced20 |= ris:0xffff08009757aa90
[    9.510173] mpam_msc mpam_msc.28: Merging features for 
vmsc:0xffff0800973ceca0 |= ris:0xffff08009757a690
[    9.510175] mpam_msc mpam_msc.26: Merging features for 
vmsc:0xffff0800973cec20 |= ris:0xffff08009757a290
[    9.510178] mpam_msc mpam_msc.24: Merging features for 
vmsc:0xffff0800973ceba0 |= ris:0xffff080097579e90
[    9.510181] mpam_msc mpam_msc.22: Merging features for 
vmsc:0xffff0800973ceb20 |= ris:0xffff080097579a90
[    9.510183] mpam_msc mpam_msc.20: Merging features for 
vmsc:0xffff0800973ceaa0 |= ris:0xffff080097579690
[    9.510186] mpam_msc mpam_msc.18: Merging features for 
vmsc:0xffff0800973cea20 |= ris:0xffff080097579290
[    9.510189] mpam_msc mpam_msc.16: Merging features for 
vmsc:0xffff0800973ce9a0 |= ris:0xffff080097578e90
[    9.510191] mpam_msc mpam_msc.62: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cf520
[    9.510195] mpam_msc mpam_msc.60: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cf4a0
[    9.510196] mpam_msc mpam_msc.58: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cf420
[    9.510199] mpam_msc mpam_msc.56: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cf3a0
[    9.510202] mpam_msc mpam_msc.54: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cf320
[    9.510204] mpam_msc mpam_msc.52: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cf2a0
[    9.510207] mpam_msc mpam_msc.50: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cf220
[    9.510209] mpam_msc mpam_msc.48: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cf1a0
[    9.510212] mpam_msc mpam_msc.46: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cf120
[    9.510214] mpam_msc mpam_msc.44: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cf0a0
[    9.510217] mpam_msc mpam_msc.42: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cf020
[    9.510219] mpam_msc mpam_msc.40: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cefa0
[    9.510222] mpam_msc mpam_msc.38: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cef20
[    9.510224] mpam_msc mpam_msc.36: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973ceea0
[    9.510227] mpam_msc mpam_msc.34: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cee20
[    9.510230] mpam_msc mpam_msc.32: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973ceda0
[    9.510232] mpam_msc mpam_msc.30: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973ced20
[    9.510235] mpam_msc mpam_msc.28: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973ceca0
[    9.510237] mpam_msc mpam_msc.26: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cec20
[    9.510240] mpam_msc mpam_msc.24: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973ceba0
[    9.510242] mpam_msc mpam_msc.22: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973ceb20
[    9.510245] mpam_msc mpam_msc.20: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973ceaa0
[    9.510247] mpam_msc mpam_msc.18: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973cea20
[    9.510250] mpam_msc mpam_msc.16: Merging features for 
class:0xffff08009736cc50 &= vmsc:0xffff0800973ce9a0
[    9.510254] mpam_msc mpam_msc.14: Merging features for 
vmsc:0xffff0800973ce920 |= ris:0xffff080097578a90
[    9.510255] mpam_msc mpam_msc.12: Merging features for 
vmsc:0xffff0800973ce8a0 |= ris:0xffff080097578690
[    9.510258] mpam_msc mpam_msc.10: Merging features for 
vmsc:0xffff0800973ce820 |= ris:0xffff080097578290
[    9.510260] mpam_msc mpam_msc.8: Merging features for 
vmsc:0xffff0800973ce7a0 |= ris:0xffff080097417e90
[    9.510263] mpam_msc mpam_msc.6: Merging features for 
vmsc:0xffff0800973ce720 |= ris:0xffff080097417a90
[    9.510266] mpam_msc mpam_msc.4: Merging features for 
vmsc:0xffff0800973ce6a0 |= ris:0xffff080097417690
[    9.510268] mpam_msc mpam_msc.2: Merging features for 
vmsc:0xffff0800973ce620 |= ris:0xffff080097417290
[    9.510271] mpam_msc mpam_msc.0: Merging features for 
vmsc:0xffff0800973ce5a0 |= ris:0xffff080097416e90
[    9.510274] mpam_msc mpam_msc.14: Merging features for 
class:0xffff08009735bb50 &= vmsc:0xffff0800973ce920
[    9.510276] mpam_msc mpam_msc.12: Merging features for 
class:0xffff08009735bb50 &= vmsc:0xffff0800973ce8a0
[    9.510279] mpam_msc mpam_msc.10: Merging features for 
class:0xffff08009735bb50 &= vmsc:0xffff0800973ce820
[    9.510281] mpam_msc mpam_msc.8: Merging features for 
class:0xffff08009735bb50 &= vmsc:0xffff0800973ce7a0
[    9.510284] mpam_msc mpam_msc.6: Merging features for 
class:0xffff08009735bb50 &= vmsc:0xffff0800973ce720
[    9.510287] mpam_msc mpam_msc.4: Merging features for 
class:0xffff08009735bb50 &= vmsc:0xffff0800973ce6a0
[    9.510289] mpam_msc mpam_msc.2: Merging features for 
class:0xffff08009735bb50 &= vmsc:0xffff0800973ce620
[    9.510292] mpam_msc mpam_msc.0: Merging features for 
class:0xffff08009735bb50 &= vmsc:0xffff0800973ce5a0
[   10.978496] mpam:mpam_resctrl_pick_caches: class 2 cache misses 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
[   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


Kunit test logs:
[   31.253697] KTAP version 1
[   31.253698] 1..2
[   31.258263]     KTAP version 1
[   31.258265]     # Subtest: mpam_devices_test_suite
[   31.258267]     # module: mpam
[   31.258268]     1..3
[   31.258775]     ok 1 test_mpam_reset_msc_bitmap
[   31.259558]     ok 2 test_mpam_enable_merge_features
[   31.260259]     ok 3 test__props_mismatch
[   31.260261] # mpam_devices_test_suite: pass:3 fail:0 skip:0 total:3
[   31.260263] # Totals: pass:3 fail:0 skip:0 total:3
[   31.260265] ok 1 mpam_devices_test_suite
[   31.260267]     KTAP version 1
[   31.260268]     # Subtest: mpam_resctrl_test_suite
[   31.260269]     # module: mpam
[   31.260271]     1..7
[   31.260965]     ok 1 test_get_mba_granularity
[   31.260968]         KTAP version 1
[   31.260969]         # Subtest: test_mbw_max_to_percent
[   31.261372]         ok 1 pc=1, width=8, value=0x01
[   31.261794]         ok 2 pc=1, width=12, value=0x027
[   31.262081]         ok 3 pc=1, width=16, value=0x028e
[   31.262183]         ok 4 pc=25, width=8, value=0x3f
[   31.262287]         ok 5 pc=25, width=12, value=0x3ff
[   31.262388]         ok 6 pc=25, width=16, value=0x3fff
[   31.262489]         ok 7 pc=33, width=8, value=0x53
[   31.262608]         ok 8 pc=33, width=12, value=0x546
[   31.262860]         ok 9 pc=33, width=16, value=0x5479
[   31.263113]         ok 10 pc=35, width=8, value=0x58
[   31.263491]         ok 11 pc=35, width=12, value=0x598
[   31.263872]         ok 12 pc=35, width=16, value=0x5998
[   31.264249]         ok 13 pc=45, width=8, value=0x72
[   31.264352]         ok 14 pc=45, width=12, value=0x732
[   31.264455]         ok 15 pc=45, width=16, value=0x7332
[   31.264559]         ok 16 pc=50, width=8, value=0x7f
[   31.264661]         ok 17 pc=50, width=12, value=0x7ff
[   31.264764]         ok 18 pc=50, width=16, value=0x7fff
[   31.264872]         ok 19 pc=52, width=8, value=0x84
[   31.264978]         ok 20 pc=52, width=12, value=0x850
[   31.265082]         ok 21 pc=52, width=16, value=0x851d
[   31.265190]         ok 22 pc=55, width=8, value=0x8b
[   31.265297]         ok 23 pc=55, width=12, value=0x8cb
[   31.265403]         ok 24 pc=55, width=16, value=0x8ccb
[   31.265507]         ok 25 pc=58, width=8, value=0x93
[   31.265609]         ok 26 pc=58, width=12, value=0x946
[   31.265714]         ok 27 pc=58, width=16, value=0x9479
[   31.265817]         ok 28 pc=75, width=8, value=0xbf
[   31.265918]         ok 29 pc=75, width=12, value=0xbff
[   31.266020]         ok 30 pc=75, width=16, value=0xbfff
[   31.266120]         ok 31 pc=80, width=8, value=0xcb
[   31.266220]         ok 32 pc=80, width=12, value=0xccb
[   31.266322]         ok 33 pc=80, width=16, value=0xcccb
[   31.266425]         ok 34 pc=88, width=8, value=0xe0
[   31.266533]         ok 35 pc=88, width=12, value=0xe13
[   31.266637]         ok 36 pc=88, width=16, value=0xe146
[   31.266758]         ok 37 pc=95, width=8, value=0xf2
[   31.267150]         ok 38 pc=95, width=12, value=0xf32
[   31.267535]         ok 39 pc=95, width=16, value=0xf332
[   31.267918]         ok 40 pc=100, width=8, value=0xff
[   31.268160]         ok 41 pc=100, width=12, value=0xfff
[   31.268264]         ok 42 pc=100, width=16, value=0xffff
[   31.268266]     # test_mbw_max_to_percent: pass:42 fail:0 skip:0 total:42
[   31.268268]     ok 2 test_mbw_max_to_percent
[   31.268270]         KTAP version 1
[   31.268271]         # Subtest: test_percent_to_mbw_max
[   31.268376]         ok 1 pc=1, width=8, value=0x01
[   31.268483]         ok 2 pc=1, width=12, value=0x027
[   31.268595]         ok 3 pc=1, width=16, value=0x028e
[   31.268701]         ok 4 pc=25, width=8, value=0x3f
[   31.268806]         ok 5 pc=25, width=12, value=0x3ff
[   31.268915]         ok 6 pc=25, width=16, value=0x3fff
[   31.269022]         ok 7 pc=33, width=8, value=0x53
[   31.269129]         ok 8 pc=33, width=12, value=0x546
[   31.269237]         ok 9 pc=33, width=16, value=0x5479
[   31.269342]         ok 10 pc=35, width=8, value=0x58
[   31.269446]         ok 11 pc=35, width=12, value=0x598
[   31.269551]         ok 12 pc=35, width=16, value=0x5998
[   31.269658]         ok 13 pc=45, width=8, value=0x72
[   31.269764]         ok 14 pc=45, width=12, value=0x732
[   31.269868]         ok 15 pc=45, width=16, value=0x7332
[   31.269975]         ok 16 pc=50, width=8, value=0x7f
[   31.270081]         ok 17 pc=50, width=12, value=0x7ff
[   31.270185]         ok 18 pc=50, width=16, value=0x7fff
[   31.270287]         ok 19 pc=52, width=8, value=0x84
[   31.270388]         ok 20 pc=52, width=12, value=0x850
[   31.270494]         ok 21 pc=52, width=16, value=0x851d
[   31.270606]         ok 22 pc=55, width=8, value=0x8b
[   31.271004]         ok 23 pc=55, width=12, value=0x8cb
[   31.271387]         ok 24 pc=55, width=16, value=0x8ccb
[   31.271770]         ok 25 pc=58, width=8, value=0x93
[   31.272151]         ok 26 pc=58, width=12, value=0x946
[   31.272260]         ok 27 pc=58, width=16, value=0x9479
[   31.272366]         ok 28 pc=75, width=8, value=0xbf
[   31.272472]         ok 29 pc=75, width=12, value=0xbff
[   31.272580]         ok 30 pc=75, width=16, value=0xbfff
[   31.272686]         ok 31 pc=80, width=8, value=0xcb
[   31.272790]         ok 32 pc=80, width=12, value=0xccb
[   31.272895]         ok 33 pc=80, width=16, value=0xcccb
[   31.273000]         ok 34 pc=88, width=8, value=0xe0
[   31.273106]         ok 35 pc=88, width=12, value=0xe13
[   31.273209]         ok 36 pc=88, width=16, value=0xe146
[   31.273318]         ok 37 pc=95, width=8, value=0xf2
[   31.273424]         ok 38 pc=95, width=12, value=0xf32
[   31.273528]         ok 39 pc=95, width=16, value=0xf332
[   31.273635]         ok 40 pc=100, width=8, value=0xff
[   31.273742]         ok 41 pc=100, width=12, value=0xfff
[   31.273847]         ok 42 pc=100, width=16, value=0xffff
[   31.273849]     # test_percent_to_mbw_max: pass:42 fail:0 skip:0 total:42
[   31.273850]     ok 3 test_percent_to_mbw_max
[   31.273852]         KTAP version 1
[   31.273853]         # Subtest: test_mbw_max_to_percent_limits
[   31.273957]         ok 1 wd=1
[   31.274064]         ok 2 wd=2
[   31.274171]         ok 3 wd=3
[   31.274276]         ok 4 wd=4
[   31.274381]         ok 5 wd=5
[   31.274485]         ok 6 wd=6
[   31.274603]         ok 7 wd=7
[   31.274710]         ok 8 wd=8
[   31.274974]         ok 9 wd=9
[   31.275362]         ok 10 wd=10
[   31.275746]         ok 11 wd=11
[   31.276122]         ok 12 wd=12
[   31.276230]         ok 13 wd=13
[   31.276335]         ok 14 wd=14
[   31.276444]         ok 15 wd=15
[   31.276551]         ok 16 wd=16
[   31.276553]     # test_mbw_max_to_percent_limits: pass:16 fail:0 
skip:0 total:16
[   31.276554]     ok 4 test_mbw_max_to_percent_limits
[   31.276605]     # test_percent_to_max_rounding: Round-up rate: 43% 
(18/42)
[   31.276668]     ok 5 test_percent_to_max_rounding
[   31.276671]         KTAP version 1
[   31.276672]         # Subtest: test_percent_max_roundtrip_stability
[   31.276776]         ok 1 wd=1
[   31.276883]         ok 2 wd=2
[   31.276988]         ok 3 wd=3
[   31.277096]         ok 4 wd=4
[   31.277202]         ok 5 wd=5
[   31.277309]         ok 6 wd=6
[   31.277416]         ok 7 wd=7
[   31.277524]         ok 8 wd=8
[   31.277629]         ok 9 wd=9
[   31.277737]         ok 10 wd=10
[   31.277843]         ok 11 wd=11
[   31.277948]         ok 12 wd=12
[   31.278061]         ok 13 wd=13
[   31.278167]         ok 14 wd=14
[   31.278273]         ok 15 wd=15
[   31.278380]         ok 16 wd=16
[   31.278381]     # test_percent_max_roundtrip_stability: pass:16 
fail:0 skip:0 total:16
[   31.278383]     ok 6 test_percent_max_roundtrip_stability
[   31.278385]         KTAP version 1
[   31.278386]         # Subtest: test_rmid_idx_encoding
[   31.278490]         ok 1 max_partid=0, max_pmg=0
[   31.278604]         ok 2 max_partid=1, max_pmg=4
[   31.279008]         ok 3 max_partid=3, max_pmg=1
[   31.279394]         ok 4 max_partid=5, max_pmg=9
[   31.279777]         ok 5 max_partid=4, max_pmg=4
[   31.280167]         ok 6 max_partid=100, max_pmg=11
[   31.358979]         ok 7 max_partid=65535, max_pmg=255
[   31.358985]     # test_rmid_idx_encoding: pass:7 fail:0 skip:0 total:7
[   31.358987]     ok 7 test_rmid_idx_encoding
[   31.358989] # mpam_resctrl_test_suite: pass:7 fail:0 skip:0 total:7
[   31.358990] # Totals: pass:125 fail:0 skip:0 total:125
[   31.358992] ok 2 mpam_resctrl_test_suite


------

Best regards,
Zeng Heng



More information about the linux-arm-kernel mailing list