Hi Reinette, On 11/22/22 18:14, Reinette Chatre wrote: > Hi Babu, > > On 11/4/2022 1:00 PM, Babu Moger wrote: >> Add a new field in mon_evt to support Bandwidth Monitoring Event >> Configuration(BMEC) and also update the "mon_features" display. >> >> The sysfs file "mon_features" will display the monitor configuration > sysfs -> resctrl ? Sure. > >> if supported. > This is not clear. "mon_features" does not display the monitor > configuration, it displays the name of the file that can be used to > see the monitor configuration. Will change it to: The sysfs -> resctrl file "mon_features" will display the supported events and files that can be used to configure those events if monitor configuration is supported. > >> Before the change. >> $cat /sys/fs/resctrl/info/L3_MON/mon_features >> llc_occupancy >> mbm_total_bytes >> mbm_local_bytes >> >> After the change when BMEC is supported. >> $cat /sys/fs/resctrl/info/L3_MON/mon_features >> llc_occupancy >> mbm_total_bytes >> mbm_total_bytes_config >> mbm_local_bytes >> mbm_local_bytes_config >> >> Signed-off-by: Babu Moger <babu.moger@xxxxxxx> >> --- >> arch/x86/kernel/cpu/resctrl/internal.h | 2 ++ >> arch/x86/kernel/cpu/resctrl/monitor.c | 6 ++++++ >> arch/x86/kernel/cpu/resctrl/rdtgroup.c | 5 ++++- >> 3 files changed, 12 insertions(+), 1 deletion(-) >> >> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h >> index e30e8b23f6b5..5459b5022760 100644 >> --- a/arch/x86/kernel/cpu/resctrl/internal.h >> +++ b/arch/x86/kernel/cpu/resctrl/internal.h >> @@ -63,11 +63,13 @@ DECLARE_STATIC_KEY_FALSE(rdt_mon_enable_key); >> * struct mon_evt - Entry in the event list of a resource >> * @evtid: event id >> * @name: name of the event >> + * @configurable: true if the event is configurable >> * @list: entry in &rdt_resource->evt_list >> */ >> struct mon_evt { >> enum resctrl_event_id evtid; >> char *name; >> + bool configurable; >> struct list_head list; >> }; >> >> diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c >> index efe0c30d3a12..06c2dc980855 100644 >> --- a/arch/x86/kernel/cpu/resctrl/monitor.c >> +++ b/arch/x86/kernel/cpu/resctrl/monitor.c >> @@ -750,6 +750,7 @@ int rdt_get_mon_l3_config(struct rdt_resource *r) >> { >> unsigned int mbm_offset = boot_cpu_data.x86_cache_mbm_width_offset; >> struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r); >> + bool mon_configurable = rdt_cpu_has(X86_FEATURE_BMEC); >> unsigned int threshold; >> int ret; >> >> @@ -783,6 +784,11 @@ int rdt_get_mon_l3_config(struct rdt_resource *r) >> if (ret) >> return ret; >> >> + if (mon_configurable) { >> + mbm_total_event.configurable = true; >> + mbm_local_event.configurable = true; >> + } >> + > Is the local variable needed? Why not just: > if (rdt_cpu_has(X86_FEATURE_BMEC)) Local variable not requited. Will change it. Thanks Babu > > > Reinette -- Thanks Babu Moger