WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] libxc: set CPUID topology leaf as unsupported fo

To: Keir Fraser <keir.xen@xxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] libxc: set CPUID topology leaf as unsupported for PV guests
From: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Date: Thu, 14 Jul 2011 14:56:40 +0100
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, David Vrabel <david.vrabel@xxxxxxxxxx>
Delivery-date: Thu, 14 Jul 2011 06:57:24 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <CA44AE04.1DDBE%keir.xen@xxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Citrix Systems, Inc.
References: <CA44AE04.1DDBE%keir.xen@xxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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