On Wed, Apr 01, 2020 at 10:51:02AM -0700, Reinette Chatre wrote:
> diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
> index 4cdb123ff66a..8552d2fadc15 100644
> --- a/arch/x86/kernel/cpu/common.c
> +++ b/arch/x86/kernel/cpu/common.c
> @@ -856,6 +856,8 @@ static void init_speculation_control(struct cpuinfo_x86 
> *c)
>  
>  static void init_cqm(struct cpuinfo_x86 *c)
>  {
> +     c->x86_cache_mbm_width_offset = -1;
> +
>       if (!cpu_has(c, X86_FEATURE_CQM_LLC)) {
>               c->x86_cache_max_rmid  = -1;
>               c->x86_cache_occ_scale = -1;
> @@ -875,6 +877,9 @@ static void init_cqm(struct cpuinfo_x86 *c)
>  
>               c->x86_cache_max_rmid  = ecx;
>               c->x86_cache_occ_scale = ebx;
> +             /* EAX contents is only defined for Intel CPUs */
> +             if (c->x86_vendor == X86_VENDOR_INTEL)
> +                     c->x86_cache_mbm_width_offset = eax & 0xff;

Remind me again pls why is all this RDT stuff replicated per CPU instead
of it being properly detected somewhere down in resctrl_late_init()?

Looking at get_rdt_resources(), it kinda wants to have that in there
too?

IOW, how about moving all that gunk in init_cqm() to resctrl/ where it
truly belongs? Doesn't have to be this patchset but this patchset can
start moving it...

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

Reply via email to