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/
Home Products Support Community News


[Xen-devel] PV hybrid: vmlaunch failure help...

To: "Xen-devel@xxxxxxxxxxxxxxxxxxx" <Xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] PV hybrid: vmlaunch failure help...
From: Mukesh Rathor <mukesh.rathor@xxxxxxxxxx>
Date: Thu, 3 Mar 2011 19:21:23 -0800
Delivery-date: Thu, 03 Mar 2011 19:22:09 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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: Oracle Corporation
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi all,

I'm trying to see if I can run PV guest in a very lightweight HVM
container. I've done some basic prototype to intercept PV guest creation
and try to start it in vmx container. But the vmlaunch fails with the
generic code, exit reason 0x80000021, guest state invalid. I've been trying
to debug it for many days now and to no avail.

It's unfortunate that there's no flow diagram or more specific error codes
to point to the field in problem in case vmlaunch fails.

I'm trying to enter vmx in IA32-e mode. I've got PG/PE/PAE all set to 1.
Ive the CS.L set to 1. I'm not loading EFER MSR as according to the 
Intel Manual, Vol 3, section 23.3.2, the LME/LMA are automatically set
if entering in the IA32-e mode. Is this correct?

I experimented with setting GDTR or leaving base to NULL, didn't help. If
I'm loading the CS fields, do I still need to set the GDTR? How about TR,
IDTR and LDTR, do they need to be set for entry? I've been playing
around setting/unsetting them, but keep getting the stupid invalid
guest state error no matter what. Oh yes, I'm on westmere.

Will appreciate any help.

thanks a lot,

*** Guest State ***
CR0: actual=0x0000000080010039, shadow=0x0000000080010039, 
CR4: actual=0x0000000000002060, shadow=0x0000000000002060, 
CR3: actual=0x00000001047ca000, target_count=0
     target0=0000000000000000, target1=0000000000000000
     target2=0000000000000000, target3=0000000000000000
RSP = 0xffffffff82c97000 (0xffffffff82c97000)  RIP = 0xffffffff81b13200 
RFLAGS=0x0000000000000002 (0x0000000000000002)  DR7 = 0x0000000000000000
Sysenter RSP=0000000000000000 CS:RIP=0000:0000000000000000
(XEN) CS: sel=0x0010, attr=0x0a09b, limit=0xffffffff, base=0x0000000000000000
(XEN) DS: sel=0x0018, attr=0x0c093, limit=0xffffffff, base=0x0000000000000000
(XEN) SS: sel=0x0018, attr=0x0c093, limit=0xffffffff, base=0x0000000000000000
(XEN) ES: sel=0x0000, attr=0x00000, limit=0xffffffff, base=0x0000000000000000
(XEN) FS: sel=0x0000, attr=0x00000, limit=0xffffffff, base=0x0000000000000000
(XEN) GS: sel=0x0000, attr=0x00000, limit=0xffffffff, base=0x0000000000000000
(XEN) GDTR:                           limit=0xffffffff, base=0xffffffff81a4c490
(XEN) LDTR: sel=0x0000, attr=0x00082, limit=0x00000000, base=0x0000000000000000
(XEN) IDTR:                           limit=0x00000000, base=0x0000000000000000
(XEN) TR: sel=0x0000, attr=0x0008b, limit=0x000000ff, base=0x0000000000000000
Guest EFER = 0x0000000000000000
Guest PAT = 0x0000000000000000
TSC Offset = ffffffb472a10c04
DebugCtl=0000000000000000 DebugExceptions=0000000000000000
Interruptibility=0000 ActivityState=0000
MSRs: entry_load:0 exit_load:0 exit_store:0

*** Host State ***
RSP = 0xffff82c48049ffa0  RIP = 0xffff82c4801b4710
CS=e008 DS=0000 ES=0000 FS=0000 GS=0000 SS=0000 TR=e040
FSBase=0000000000000000 GSBase=0000000000000000 TRBase=ffff82c480292a80
GDTBase=ffff82c4800f3000 IDTBase=ffff82c4804de1e0
CR0=000000008005003b CR3=00000001047ca000 CR4=00000000000026f0
Sysenter RSP=ffff82c48049ffd0 CS:RIP=e008:ffff82c4801ee2f0
Host PAT = 0x0000000000000000

*** Control State ***
PinBased=0000001f CPUBased=2481e7fa SecondaryExec=00000020
EntryControls=000013fb ExitControls=0003efff
VMEntry: intr_info=00000000 errcode=00000000 ilen=00000000
VMExit: intr_info=00000000 errcode=00000000 ilen=00000000
        reason=80000021 qualification=00000000
IDTVectoring: info=00000000 errcode=00000000
TPR Threshold = 0x00
EPT pointer = 0x0000000000000000
Virtual processor ID = 0x0001

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>