Hi Reinette, On 4/11/25 17:07, Reinette Chatre wrote: > Hi Babu, > > On 4/3/25 5:18 PM, Babu Moger wrote: >> Users can modify the event configuration by writing to the event_filter >> interface file. The event configurations for mbm_cntr_assign mode are >> located in /sys/fs/resctrl/info/event_configs/. >> >> Update the assignments of all groups when the event configuration is >> modified. >> >> Example: >> $ cd /sys/fs/resctrl/ >> $ echo "local_reads, local_non_temporal_writes" > >> info/L3_MON/counter_configs/mbm_total_bytes/event_filter >> >> $ cat info/L3_MON/counter_configs/mbm_total_bytes/event_filter >> local_reads, local_non_temporal_writes >> >> Signed-off-by: Babu Moger <babu.moger@xxxxxxx> >> --- >> v12: New patch to modify event configurations. >> --- >> Documentation/arch/x86/resctrl.rst | 10 +++ >> arch/x86/kernel/cpu/resctrl/rdtgroup.c | 115 ++++++++++++++++++++++++- >> 2 files changed, 124 insertions(+), 1 deletion(-) >> >> diff --git a/Documentation/arch/x86/resctrl.rst b/Documentation/arch/x86/resctrl.rst >> index 99f9f4b9b501..4e6feba6fb08 100644 >> --- a/Documentation/arch/x86/resctrl.rst >> +++ b/Documentation/arch/x86/resctrl.rst >> @@ -335,6 +335,16 @@ with the following files: >> # cat /sys/fs/resctrl/info/L3_MON/counter_configs/mbm_local_bytes/event_filter >> local_reads, local_non_temporal_writes, local_reads_slow_memory >> >> + The event configuration can be modified by writing to the event_filter file within >> + the configuration directory. > > Please use imperative tone. Sure. Basic question - Should the user doc also be in imperative mode? I thought it only applies to commit log. > >> + :: >> + >> + # echo "local_reads, local_non_temporal_writes" > >> + /sys/fs/resctrl/info/L3_MON/counter_configs/mbm_total_bytes/event_filter >> + >> + # cat /sys/fs/resctrl/info/L3_MON/counter_configs/mbm_total_bytes/event_filter >> + local_reads, local_non_temporal_writes >> + >> "max_threshold_occupancy": >> Read/write file provides the largest value (in >> bytes) at which a previously used LLC_occupancy >> diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c >> index b2122a1dd36c..7792455f0b26 100644 >> --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c >> +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c >> @@ -1926,6 +1926,118 @@ static int event_filter_show(struct kernfs_open_file *of, struct seq_file *seq, >> return 0; >> } >> > > Could you please add comments to these new functions to explain what they do? Sure. > >> +static int resctrl_group_assign(struct rdt_resource *r, struct rdtgroup *rdtgrp, >> + enum resctrl_event_id evtid, u32 evt_cfg) >> +{ >> + struct rdt_mon_domain *d; >> + int cntr_id, ret; >> + >> + list_for_each_entry(d, &r->mon_domains, hdr.list) { >> + cntr_id = mbm_cntr_get(r, d, rdtgrp, evtid); >> + if (cntr_id >= 0 && d->cntr_cfg[cntr_id].evt_cfg != evt_cfg) { >> + d->cntr_cfg[cntr_id].evt_cfg = evt_cfg; >> + ret = resctrl_arch_config_cntr(r, d, evtid, rdtgrp->mon.rmid, >> + rdtgrp->closid, cntr_id, evt_cfg, true); >> + if (ret) { >> + rdt_last_cmd_printf("Assign failed event %d domain %d group %s\n", >> + evtid, d->hdr.id, rdtgrp->kn->name); > > Please provide the actual event name to user space. The event IDs are not visible to > user space. Sure. -- Thanks Babu Moger