[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86/hvm: always expose x2APIC feature in max HVM cpuid policy
On Tue, Dec 24, 2019 at 04:00:27PM +0000, Andrew Cooper wrote: > On 24/12/2019 12:42, Roger Pau Monné wrote: > > On Tue, Dec 24, 2019 at 12:23:12PM +0000, Andrew Cooper wrote: > >> On 24/12/2019 10:18, Roger Pau Monne wrote: > >>> On hardware without x2APIC support Xen emulated local APIC will > >>> provide such mode, and hence the feature should be set in the maximum > >>> HVM cpuid policy. > >>> > >>> Not exposing it in the maximum policy results in HVM domains not > >>> getting such feature exposed unless it's also supported by the > >>> underlying hardware. > >>> > >>> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> > >> x2apic has never been exposed via this mechanism, due to its effects on > >> topology calculations. > > Well, it's exposed in hvm_max_cpuid_policy if it's present in the > > hardware. IMO it's kind of weird that the presence of the x2APIC feature > > on the max policy depends on the underlying hardware, when it's always > > supported by the emulated vlapic. > > > > I think x2APIC must either always be part of the max policy, or never, > > or else it's very easy to cause regressions because it's not so easy > > to find a box without x2APIC. > > Hmm - this does highlight the inconsistency in the existing logic. I'm > not overly surprised - this is a remnant of the old model which hasn't > been rewritten yet. I could do something like: diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c index 519d6d8bd0..a7adc41854 100644 --- a/tools/libxc/xc_cpuid_x86.c +++ b/tools/libxc/xc_cpuid_x86.c @@ -641,6 +641,7 @@ int xc_cpuid_apply_policy(xc_interface *xch, uint32_t domid, p->extd.itsc = true; p->basic.vmx = true; p->extd.svm = true; + p->basic.x2apic = true; } rc = x86_cpuid_copy_to_buffer(p, leaves, &nr_leaves); But it seems kind of bogus to me that such feature is not part of the hvm_max_cpuid_policy, at the end of day the toolstack has no knowledge of whether the hypervisor provides a x2APIC interface or not (apart from us hardcoding it in the tools like the above patch). > > > >> It has however always been down to the toolstack to opt in, and Xen > >> permits this via recalculate_cpuid_policy(), on the expectation that the > >> toolstack knew what it was doing WRT topology (all evidence actually to > >> the contrary). > > Hm, I can try to force the setting in libxc. > > > >> If we're seeing a recent change in behaviour, then it will be from libxc. > > IIRC x2APIC was always exposed to HVM guests regardless of the > > underlying hardware support. > > I have a suspicion that this may have been broken by c/s 3e0c8272f in > 2015... I could swear Xen was exposing the x2APIC CPUID feature on the box I'm currently testing during the 4.13 development cycle, or else I did hack it myself for development purposes and completely forgot to send a patch afterwards. Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |