[RFC PATCH v2 2/5] arm_mpam: resctrl: Pre-allocate assignable monitors

Ben Horgan ben.horgan at arm.com
Fri Mar 27 02:54:12 PDT 2026


Hi Shaopeng,

On 3/27/26 03:00, Shaopeng Tan (Fujitsu) wrote:
> Hello Ben,
> 
>> MPAM is able to emulate ABMC, i.e. mbm_event mode, by making memory
>> bandwidth monitors assignable. Rather than supporting the 'default'
>> mbm_assign_mode always use 'mbm_event'mode even if there are sufficient
>> memory bandwidth monitors. The per monitor event configuration is only
>> provided by resctrl when in 'mbm_event' mode and so only allowing
>> 'mbm_event' mode will make it easier to support per-monitor event
>> configuration for MPAM. For the moment, the only event supported is
>> mbm_total_event with no bandwidth type configuration. The 'mbm_assign_mode'
>> file will still show 'default' when there is no support for memory
>> bandwidth monitoring.
>>
>> The monitors need to be allocated from the driver, and mapped to whichever
>> control/monitor group resctrl wants to use them with.
>>
>> Add a second array to hold the monitor values indexed by resctrl's cntr_id.
>>
>> When CDP is in use, two monitors are needed so the available number of
>> counters halves. Platforms with one monitor will have zero monitors when
>> CDP is in use.
>>
>> Co-developed-by: James Morse <james.morse at arm.com>
>> Signed-off-by: James Morse <james.morse at arm.com>
>> Signed-off-by: Ben Horgan <ben.horgan at arm.com>

>>  
>> +/*
>> + * This must run after all event counters have been picked so that any free
>> + * running counters have already been allocated.
>> + */
>> +static int mpam_resctrl_monitor_init_abmc(struct mpam_resctrl_mon *mon)
>> +{
>> +       struct mpam_resctrl_res *res = &mpam_resctrl_controls[RDT_RESOURCE_L3];
>> +       struct rdt_resource *l3 = &res->resctrl_res;
>> +       struct mpam_class *class = mon->class;
>> +       u16 num_mbwu_mon;
>> +       size_t num_rmid = resctrl_arch_system_num_rmid_idx();
>> +
>> +       if (mon->mbwu_idx_to_mon) {
>> +               pr_debug("monitors free running\n");
>> +               return 0;
>> +       }
> 
> ABMC is not supported under this condition. 
> Why does this condition conclude that there are enough monitors(monitors freee running)?

This is just a mistake. I missed removing this condition when support for using mbwu in
"free running"/non-AMBC mode was removed.

Thanks,

Ben

> 
> Best regards,
> Shaopeng TAN
> 



More information about the linux-arm-kernel mailing list