Hi Babu, On 4/15/25 7:20 AM, Moger, Babu wrote: > Hi Reinette, > > On 4/11/25 16:04, Reinette Chatre wrote: >> Hi Babu, >> >> On 4/3/25 5:18 PM, Babu Moger wrote: >>> The mbm_cntr_assign mode offers "num_mbm_cntrs" number of counters that >>> can be assigned to an RMID, event pair and monitor the bandwidth as long >>> as it is assigned. >> >> Above makes it sound as though multiple counters can be assigned to >> an RMID, event pair. >> > > Yes. Multiple counter-ids can be assigned to RMID, event pair. oh, are you referring to the assignments of different counters across multiple domains? > >>> >>> Add the functionality to allocate and assign the counters to RMID, event >>> pair in the domain. >> >> "assign *a* counter to an RMID, event pair"? > > Sure. > >> >>> >>> If all the counters are in use, the kernel will log the error message >>> "Unable to allocate counter in domain" in /sys/fs/resctrl/info/ >>> last_cmd_status when a new assignment is requested. Exit on the first >>> failure when assigning counters across all the domains. >>> >>> Signed-off-by: Babu Moger <babu.moger@xxxxxxx> >>> --- >> >> ... >> >>> --- >>> arch/x86/kernel/cpu/resctrl/internal.h | 2 + >>> arch/x86/kernel/cpu/resctrl/monitor.c | 124 +++++++++++++++++++++++++ >>> 2 files changed, 126 insertions(+) >>> >>> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h >>> index 0b73ec451d2c..1a8ac511241a 100644 >>> --- a/arch/x86/kernel/cpu/resctrl/internal.h >>> +++ b/arch/x86/kernel/cpu/resctrl/internal.h >>> @@ -574,6 +574,8 @@ bool closid_allocated(unsigned int closid); >>> int resctrl_find_cleanest_closid(void); >>> void arch_mbm_evt_config_init(struct rdt_hw_mon_domain *hw_dom); >>> unsigned int mon_event_config_index_get(u32 evtid); >>> +int resctrl_assign_cntr_event(struct rdt_resource *r, struct rdt_mon_domain *d, >>> + struct rdtgroup *rdtgrp, enum resctrl_event_id evtid, u32 evt_cfg); >> >> This is internal to resctrl fs. Why is it needed to provide both the event id >> and the event configuration? Event configuration can be determined from event ID? > > Yes. It can be done. Then I have to export the functions like > mbm_get_assign_config() into monitor.c. To avoid that I passed it from > here which I felt much more cleaner.