Hi Tony, On 1/30/24 16:20, Tony Luck wrote: > The RDT_RESOURCE_L3 is unique in that it is used for both monitoring > an control functions. This made sense while both uses had the same an/and > scope. But systems with Sub-NUMA clustering enabled do not follow this > pattern. > > Create a new resource: RDT_RESOURCE_L3_MON ready to take over the > monitoring functions. > > Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx> > --- > arch/x86/kernel/cpu/resctrl/internal.h | 1 + > arch/x86/kernel/cpu/resctrl/core.c | 10 ++++++++++ > 2 files changed, 11 insertions(+) > > diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h > index 52e7e7deee10..c6051bc70e96 100644 > --- a/arch/x86/kernel/cpu/resctrl/internal.h > +++ b/arch/x86/kernel/cpu/resctrl/internal.h > @@ -429,6 +429,7 @@ DECLARE_STATIC_KEY_FALSE(rdt_alloc_enable_key); > extern struct dentry *debugfs_resctrl; > > enum resctrl_res_level { > + RDT_RESOURCE_L3_MON, > RDT_RESOURCE_L3, How about? RDT_RESOURCE_L3, RDT_RESOURCE_L3_MON, > RDT_RESOURCE_L2, > RDT_RESOURCE_MBA, > diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c > index aa9810a64258..c50f55d7790e 100644 > --- a/arch/x86/kernel/cpu/resctrl/core.c > +++ b/arch/x86/kernel/cpu/resctrl/core.c > @@ -60,6 +60,16 @@ mba_wrmsr_amd(struct rdt_domain *d, struct msr_param *m, > #define domain_init(id) LIST_HEAD_INIT(rdt_resources_all[id].r_resctrl.domains) > > struct rdt_hw_resource rdt_resources_all[] = { > + [RDT_RESOURCE_L3_MON] = > + { > + .r_resctrl = { > + .rid = RDT_RESOURCE_L3_MON, > + .name = "L3", L3_MON ? > + .cache_level = 3, > + .domains = domain_init(RDT_RESOURCE_L3_MON), > + .fflags = RFTYPE_RES_CACHE, > + }, > + }, > [RDT_RESOURCE_L3] = > { > .r_resctrl = { -- Thanks Babu Moger