Re: [PATCH mpam mpam/snapshot/v6.14-rc1] arm64/mpam: Fix MBWU monitor overflow handling

From: Zeng Heng

Date: Tue Oct 28 2025 - 23:59:15 EST


Hi Ben,

On 2025/10/29 10:49, Zeng Heng wrote:
Hi Ben,

On 2025/10/29 0:01, Ben Horgan wrote:
Hi Zeng,

On 10/25/25 10:01, Zeng Heng wrote:
Hi Ben,

On 2025/10/23 0:17, Ben Horgan wrote:

Signed-off-by: Zeng Heng <zengheng4@xxxxxxxxxx>
---
   drivers/resctrl/mpam_devices.c | 8 +++++---
   1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/
mpam_devices.c
index 0dd048279e02..06f3ec9887d2 100644
--- a/drivers/resctrl/mpam_devices.c
+++ b/drivers/resctrl/mpam_devices.c
@@ -1101,7 +1101,8 @@ static void __ris_msmon_read(void *arg)
       clean_msmon_ctl_val(&cur_ctl);
       gen_msmon_ctl_flt_vals(m, &ctl_val, &flt_val);
       config_mismatch = cur_flt != flt_val ||
-              cur_ctl != (ctl_val | MSMON_CFG_x_CTL_EN);
+             (cur_ctl & ~MSMON_CFG_x_CTL_OFLOW_STATUS) !=
+             (ctl_val | MSMON_CFG_x_CTL_EN);

This only considers 31 bit counters. I would expect any change here to
consider all lengths of counter.

Sorry, regardless of whether the counter is 32-bit or 64-bit, the
config_mismatch logic should be handled the same way here. Am I
wrong?

Yes, they should be handled the same way. However, the overflow status
bit for long counters is MSMON_CFG_MBWU_CTL_OFLOW_STATUS_L.

I now see that the existing code in the series has this covered.
Both the overflow bits are masked out in clean_msmon_ctl_val(). No need
for any additional masking.


Yes, I’ve seen the usage, except that clearing the overflow bit in the
register is missing.


Please disregard my previous mail... :)

Exactly, thanks for the review. I'll fold the fixes into v2 of the
patch.


Best Regards,
Zeng Heng