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