[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [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 
>VMCLEAR is
>> 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 
>original 
>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;

     vmx_clear_vmcs(v);

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

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.