[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] libxc: set CPUID topology leaf as unsupported for PV guests
On Thu, 2011-07-14 at 14:30 +0100, Keir Fraser wrote: > On 14/07/2011 12:50, "David Vrabel" <david.vrabel@xxxxxxxxxx> wrote: > > > # HG changeset patch > > # User David Vrabel <david.vrabel@xxxxxxxxxx> > > # Date 1310643124 -3600 > > # Branch cpuid > > # Node ID b3705aae543b95fd7f6bb38c21b5f1edd2b70609 > > # Parent 98701b1276c034b2bbbc8c7a975cf4c361caaa63 > > libxc: set CPUID topology leaf as unsupported for PV guests > > > > The result of a CPUID Extended Topology Enumeration leaf for PV guests > > is invalid as the level in ECX is ignored. This can cause some guests > > to loop endlessly when trying to enumerate the topology. > > > > Since the physical topology isn't useful to PV guests set the topology > > leaf as unsupported. > > For future reference, you also need to modify > xen/arch/x86/traps.c:pv_cpuid(), for dom0. Aside: the cases of that switch are taking inconsistency to a new level: $ grep -A 121 pv_cpuid\(struct xen/arch/x86/traps.c | grep case case 1: case 7: case 0x80000001: case 0xd: /* XSAVE */ case 5: /* MONITOR/MWAIT */ case 0xa: /* Architectural Performance Monitor Features */ case 0x8000000a: /* SVM revision and features */ case 0x8000001b: /* Instruction Based Sampling */ case 0x8000001c: /* Light Weight Profiling */ case 0x8000001e: /* Extended topology reporting */ Yeah! Ian. > > -- Keir > > > Guests affected include Linux kernels prior 2.6.32 where a workaround > > was applied ("xen: mask extended topology info in cpu", > > 82d6469916c6fcfa345636a49004c9d1753905d1). > > > > Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx> > > > > diff -r 98701b1276c0 -r b3705aae543b tools/libxc/xc_cpuid_x86.c > > --- a/tools/libxc/xc_cpuid_x86.c Thu Jul 14 09:43:37 2011 +0100 > > +++ b/tools/libxc/xc_cpuid_x86.c Thu Jul 14 12:32:04 2011 +0100 > > @@ -487,6 +487,11 @@ static void xc_cpuid_pv_policy( > > regs[0] = regs[2] = regs[3] = 0; > > break; > > > > + case 0x0000000b: > > + /* Extended Topology Enumeration leaf is unsupported. */ > > + regs[0] = regs[1] = regs[2] = regs[3] = 0; > > + break; > > + > > case 0x0000000d: > > xc_cpuid_config_xsave(xch, domid, xfeature_mask, input, regs); > > break; > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@xxxxxxxxxxxxxxxxxxx > > http://lists.xensource.com/xen-devel > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |