Hi James, On 2/20/24 12:14, James Morse wrote: > Hi Babu, > > On 19/01/2024 18:22, Babu Moger wrote: >> The ABMC feature provides an option to the user to pin (or assign) the >> RMID to the hardware counter and monitor the bandwidth for a longer >> duration. There are only a limited number of hardware counters. >> >> Provide the interface to display the number of ABMC counters supported. > > >> diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c >> index a6c336b6de61..fa492ea820f0 100644 >> --- a/arch/x86/kernel/cpu/resctrl/monitor.c >> +++ b/arch/x86/kernel/cpu/resctrl/monitor.c >> @@ -823,6 +823,10 @@ int __init rdt_get_mon_l3_config(struct rdt_resource *r) >> resctrl_file_fflags_init("mbm_local_bytes_config", >> RFTYPE_MON_INFO | RFTYPE_RES_CACHE); >> } >> + > >> + if (rdt_cpu_has(X86_FEATURE_ABMC)) > > Please put this in a header and calling it something like > resctrl_arch_has_assignable_counters(). These X86 feature definition macros aren't > available on other architectures! Sure. Will do. > > >> + resctrl_file_fflags_init("mbm_assignable_counters", >> + RFTYPE_MON_INFO); >> } >> >> l3_mon_evt_init(r); >> diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c >> index 3e233251e7ed..53be5cd1c28e 100644 >> --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c >> +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c >> @@ -811,6 +811,17 @@ static int rdtgroup_rmid_show(struct kernfs_open_file *of, >> return ret; >> } >> >> +static int rdtgroup_mbm_assignable_counters_show(struct kernfs_open_file *of, >> + struct seq_file *s, void *v) >> +{ >> + struct rdt_resource *r = of->kn->parent->priv; > >> + struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r); > > (After the move out to /fs/ the resctrl_to_arch_res() macro is private to the arch code. > Needing to do this when providing a value to user-space is the indication that the value > should be in struct rdt_resource instead!) Ok. Sure. Will > > >> + seq_printf(s, "%d\n", hw_res->mbm_assignable_counters); >> + >> + return 0; >> +} >> + >> #ifdef CONFIG_PROC_CPU_RESCTRL >> >> /* > > > Thanks, > > James -- Thanks Babu Moger