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

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

On 2 Jul 2006, at 05:01, Li, Xin B wrote:

This patch is itself buggy: Just because a VMCS hasn't been launched
doesn't mean it hasn't been activated on some CPU.

Hmm, thinking about a VMCS is migrating from cpu A to cpu B, and on cpu A vmclear has been executed, but just before the VMCS is launched on cpu B, the domain is killed, what will happen? I'm not sure if vmclear on a VMCS in cleared state is allowed. If not, we still need this fix.

active_cpu will be B in this case, so we'll execute VMCLEAR on CPU B. 'Launched' is just an extra sub-state of an active VMCS. This is all taken from Section 20.1 of Vol. 3 of the Intel Reference Manual.

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, it's buggy, and prevent the first vmclear to a vmcs.

I found even without my fix the first vmclear to a newly allocated vmcs is prevented, this is because arch_vmx->active_cpu = -1is executed before vmx_clear_vmcs(v) in construct_vmcs(). We may workaound it by setting active_cpu to smp_processor_id(), and launched to 1here, but surely this is not what we want.

Yes, that's broken. I'll fix to use __vmx_clear_vmcs().

 -- Keir

Xen-devel mailing list



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