Hi Babu, On 8/21/2023 4:30 PM, Babu Moger wrote: ... > diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h > index 2fae6d9e24d3..3fa32c1c2677 100644 > --- a/arch/x86/kernel/cpu/resctrl/internal.h > +++ b/arch/x86/kernel/cpu/resctrl/internal.h > @@ -296,9 +296,15 @@ struct rdtgroup { > * --> RFTYPE_BASE (Files common for both MON and CTRL groups) > * Files: cpus, cpus_list, tasks > * > + * --> RFTYPE_DEBUG (Files to help resctrl debugging) > + * File: mon_hw_id > + * This does not look right. I think mon_hw_id should have RFTYPE_MON (more below). > * --> RFTYPE_CTRL (Files only for CTRL group) > * Files: mode, schemata, size > * > + * --> RFTYPE_DEBUG (Files to help resctrl debugging) > + * File: ctrl_hw_id > + * > */ > #define RFTYPE_INFO BIT(0) > #define RFTYPE_BASE BIT(1) > diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c > index 94bd69f9964c..e0c2479acf49 100644 > --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c > +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c > @@ -776,6 +776,38 @@ static int rdtgroup_tasks_show(struct kernfs_open_file *of, > return ret; > } > > +static int rdtgroup_closid_show(struct kernfs_open_file *of, > + struct seq_file *s, void *v) > +{ > + struct rdtgroup *rdtgrp; > + int ret = 0; > + > + rdtgrp = rdtgroup_kn_lock_live(of->kn); > + if (rdtgrp) > + seq_printf(s, "%u\n", rdtgrp->closid); > + else > + ret = -ENOENT; > + rdtgroup_kn_unlock(of->kn); > + > + return ret; > +} > + > +static int rdtgroup_rmid_show(struct kernfs_open_file *of, > + struct seq_file *s, void *v) > +{ > + struct rdtgroup *rdtgrp; > + int ret = 0; > + > + rdtgrp = rdtgroup_kn_lock_live(of->kn); > + if (rdtgrp) > + seq_printf(s, "%u\n", rdtgrp->mon.rmid); > + else > + ret = -ENOENT; > + rdtgroup_kn_unlock(of->kn); > + > + return ret; > +} > + > #ifdef CONFIG_PROC_CPU_RESCTRL > > /* > @@ -1837,6 +1869,13 @@ static struct rftype res_common_files[] = { > .seq_show = rdtgroup_tasks_show, > .fflags = RFTYPE_BASE, > }, > + { > + .name = "mon_hw_id", > + .mode = 0444, > + .kf_ops = &rdtgroup_kf_single_ops, > + .seq_show = rdtgroup_rmid_show, > + .fflags = RFTYPE_BASE | RFTYPE_DEBUG, I missed this earlier but I think this also needs a RFTYPE_MON. Perhaps patch 3 can introduce a new RFTYPE_MON_BASE to not have the flags of the two new files look too different? > + }, > { > .name = "schemata", > .mode = 0644, > @@ -1860,6 +1899,13 @@ static struct rftype res_common_files[] = { > .seq_show = rdtgroup_size_show, > .fflags = RFTYPE_CTRL_BASE, > }, > + { > + .name = "ctrl_hw_id", > + .mode = 0444, > + .kf_ops = &rdtgroup_kf_single_ops, > + .seq_show = rdtgroup_closid_show, > + .fflags = RFTYPE_CTRL_BASE | RFTYPE_DEBUG, > + }, > > }; > Reinette