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! > + 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!) > + seq_printf(s, "%d\n", hw_res->mbm_assignable_counters); > + > + return 0; > +} > + > #ifdef CONFIG_PROC_CPU_RESCTRL > > /* Thanks, James