Hi, Tony, On 1/26/23 10:41, Tony Luck wrote: > Add a placeholder in the array of struct rdt_hw_resource to be used > for event monitoring of systems with Sub-NUMA Cluster enabled. > > Update get_domain_id() to handle SCOPE_NODE. > > Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx> > --- > arch/x86/kernel/cpu/resctrl/internal.h | 2 ++ > arch/x86/kernel/cpu/resctrl/core.c | 12 ++++++++++++ > 2 files changed, 14 insertions(+) > > diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h > index 15cea517efaa..39a62babd60b 100644 > --- a/arch/x86/kernel/cpu/resctrl/internal.h > +++ b/arch/x86/kernel/cpu/resctrl/internal.h > @@ -409,12 +409,14 @@ enum resctrl_res_level { > RDT_RESOURCE_L3, > RDT_RESOURCE_L2, > RDT_RESOURCE_MBA, > + RDT_RESOURCE_NODE, > > /* Must be the last */ > RDT_NUM_RESOURCES, > }; > > enum resctrl_scope { > + SCOPE_NODE, > SCOPE_L2_CACHE = 2, > SCOPE_L3_CACHE = 3 > }; > diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c > index 6914232acf84..19be6fe42ef3 100644 > --- a/arch/x86/kernel/cpu/resctrl/core.c > +++ b/arch/x86/kernel/cpu/resctrl/core.c > @@ -100,6 +100,16 @@ struct rdt_hw_resource rdt_resources_all[] = { > .fflags = RFTYPE_RES_MB, > }, > }, > + [RDT_RESOURCE_NODE] = > + { > + .r_resctrl = { > + .rid = RDT_RESOURCE_NODE, > + .name = "L3", "L3" was named as RDT_RESOURCE_L3 already. The duplicate name here may cause duplicate file names in info dir. Maybe rename it as "L3_NODE"? > + .scope = SCOPE_NODE, > + .domains = domain_init(RDT_RESOURCE_NODE), > + .fflags = RFTYPE_RES_MB, I'm not sure if fflags is RFTYPE_RES_MB | RFTYPE_RES_L3 for both cache and MB? > + }, > + }, > }; > > /* > @@ -464,6 +474,8 @@ static int arch_domain_mbm_alloc(u32 num_rmid, struct rdt_hw_domain *hw_dom) > > static int get_domain_id(int cpu, enum resctrl_scope scope) > { > + if (scope == SCOPE_NODE) > + return cpu_to_node(cpu); > return get_cpu_cacheinfo_id(cpu, scope); > } > Thanks. -Fenghua