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


RE: [Xen-devel] credit scheduler issues in 64bit hypervisor

To: "Keir Fraser" <Keir.Fraser@xxxxxxxxxxxx>
Subject: RE: [Xen-devel] credit scheduler issues in 64bit hypervisor
From: "Li, Xin B" <xin.b.li@xxxxxxxxx>
Date: Sun, 2 Jul 2006 22:38:02 +0800
Cc: Ian Pratt <m+Ian.Pratt@xxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, Steven Hand <Steven.Hand@xxxxxxxxxxxx>, "Zheng, Jeff" <jeff.zheng@xxxxxxxxx>
Delivery-date: Sun, 02 Jul 2006 07:38:34 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcadKK7o+ueAUe+mRwSgxKbekE+hbgAu/x+A
Thread-topic: [Xen-devel] credit scheduler issues in 64bit hypervisor
 >> This is caused by a vmcs bug, the root cause is on x86_64, a 
>VMX domain
>> is killed without any vmentry (caused by "Error: Device 768 
>(vbd) could
>> not be connected. Hotplug scripts not working."), but then a 
>> still executed on its unlaunched VMCS.
>> the following patch fixes it.
>> Signed-off-by: Xin Li <xin.b.li@xxxxxxxxx>
>This patch is itself buggy: Just because a VMCS hasn't been launched 
>doesn't mean it hasn't been activated on some CPU. I think the 
>bug would be better fixed by only calling vmx_clear_vmcs() in 
>vmx_destroy_vmcs() if arch_vmx->vmcs != NULL. Even better would be not 
>to allocate the VMCS so darn late.

Yes, such a fix should work.

diff -r 130a5badf2b7 xen/arch/x86/hvm/vmx/vmcs.c
--- a/xen/arch/x86/hvm/vmx/vmcs.c       Fri Jun 30 22:02:58 2006 +0100
+++ b/xen/arch/x86/hvm/vmx/vmcs.c       Sun Jul 02 22:33:47 2006 +0800
@@ -495,6 +511,9 @@ void vmx_destroy_vmcs(struct vcpu *v)
 void vmx_destroy_vmcs(struct vcpu *v)
     struct arch_vmx_struct *arch_vmx = &v->arch.hvm_vmx;
+    if ( arch_vmx->vmcs == NULL )
+        return;


Hmm, I still prefer allocating VMCS just before launching, can you
explain your concerns?

Xen-devel mailing list