Re: [PATCH v8 07/13] x86/resctrl: Introduce data structure to support monitor configuration
From: "Moger, Babu" <babu.moger@amd.com>
Date: 2022-11-23 18:24:07
Also in:
lkml
Hi Reinette, On 11/22/22 18:14, Reinette Chatre wrote:
Hi Babu, On 11/4/2022 1:00 PM, Babu Moger wrote:quoted
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 configurationsysfs -> resctrl ?
Sure.
quoted
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.
quoted
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@amd.com> --- 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