On 15.05.2023 16:42, Andrew Cooper wrote:
> Extend x86_cpu_policy_fill_native() with a read of ARCH_CAPS based on the
> CPUID information just read, which removes the need handling it specially in
> calculate_raw_cpu_policy().
> 
> Extend generic_identify() to read ARCH_CAPS into x86_capability[], which is
> fed into the Host Policy.  This in turn means there's no need to special case
> arch_caps in calculate_host_policy().
> 
> No practical change.
> 
> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>

Reviewed-by: Jan Beulich <jbeul...@suse.com>

I have a question though, which I think would be nice if the description
had covered:

> --- a/xen/lib/x86/cpuid.c
> +++ b/xen/lib/x86/cpuid.c
> @@ -226,7 +226,12 @@ void x86_cpu_policy_fill_native(struct cpu_policy *p)
>      p->hv_limit = 0;
>      p->hv2_limit = 0;
>  
> -    /* TODO MSRs */
> +#ifdef __XEN__
> +    /* TODO MSR_PLATFORM_INFO */
> +
> +    if ( p->feat.arch_caps )
> +        rdmsrl(MSR_ARCH_CAPABILITIES, p->arch_caps.raw);
> +#endif

What about non-Xen environments re-using this code? In particular the
test harnesses would be nice if they didn't run with the two fields
all blank at all times.

Jan

Reply via email to