Hi Babu, On 7/8/25 3:17 PM, Babu Moger wrote: > diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c > index 267e9206a999..b48cc67cbbe3 100644 > --- a/arch/x86/kernel/cpu/resctrl/core.c > +++ b/arch/x86/kernel/cpu/resctrl/core.c > @@ -990,7 +990,8 @@ void resctrl_cpu_detect(struct cpuinfo_x86 *c) > > if (cpu_has(c, X86_FEATURE_CQM_OCCUP_LLC) || > cpu_has(c, X86_FEATURE_CQM_MBM_TOTAL) || > - cpu_has(c, X86_FEATURE_CQM_MBM_LOCAL)) { > + cpu_has(c, X86_FEATURE_CQM_MBM_LOCAL) || > + cpu_has(c, X86_FEATURE_ABMC)) { I interpret this to mean that ABMC does not depend on any of the "legacy" monitoring features. > u32 eax, ebx, ecx, edx; > > /* QoS sub-leaf, EAX=0Fh, ECX=1 */ > diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c > index 2558b1bdef8b..0a695ce68f46 100644 > --- a/arch/x86/kernel/cpu/resctrl/monitor.c > +++ b/arch/x86/kernel/cpu/resctrl/monitor.c > @@ -339,6 +339,7 @@ int __init rdt_get_mon_l3_config(struct rdt_resource *r) > unsigned int mbm_offset = boot_cpu_data.x86_cache_mbm_width_offset; > struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r); > unsigned int threshold; > + u32 eax, ebx, ecx, edx; > > snc_nodes_per_l3_cache = snc_get_config(); > > @@ -368,14 +369,18 @@ int __init rdt_get_mon_l3_config(struct rdt_resource *r) rdt_get_mon_l3_config() is only called when one or more of the "legacy" monitoring features are supported ... > */ > resctrl_rmid_realloc_threshold = resctrl_arch_round_mon_val(threshold); > > - if (rdt_cpu_has(X86_FEATURE_BMEC)) { > - u32 eax, ebx, ecx, edx; > - > + if (rdt_cpu_has(X86_FEATURE_BMEC) || rdt_cpu_has(X86_FEATURE_ABMC)) { > /* Detect list of bandwidth sources that can be tracked */ > cpuid_count(0x80000020, 3, &eax, &ebx, &ecx, &edx); > r->mon.mbm_cfg_mask = ecx & MAX_EVT_CONFIG_BITS; > } > > + if (rdt_cpu_has(X86_FEATURE_ABMC)) { ... so having this check within rdt_get_mon_l3_config() implies that ABMC depends on the "legacy" monitoring features. This contradicts the change to resctrl_cpu_detect() though so it seems that get_rdt_mon_resources() is missing a check for ABMC to ensure rdt_get_mon_l3_config() is called when ABMC is supported (but "legacy" monitoring features are not)? Reinette