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

Re: [Xen-devel] Dump VMCS on Intel CPU



On 06/06/2009 04:06, "Mukesh Rathor" <mukesh.rathor@xxxxxxxxxx> wrote:

> On AMD, it was simple by calling svm_dump_vmcb() by passing vmcb from
> each vcpu struct. Looking at vmcs.c, I see quite a bit of mumbo-jumbo in
> terms of setting context, even IPI other CPUs, etc. That doesn't work
> for me. So the question is, is there any reason followig won't work?
> 
>    for each hvm vcpu {
>        __vmptrld(virt_to_maddr(vp->arch.hvm_vmx.vmcs));
>        vmcs_dump_vcpu();
>    }
>    if ( is_hvm_vcpu(current) )
>        __vmptrld(virt_to_maddr(current->arch.hvm_vmx.vmcs));
> 
> 
> Seems to work ok, but I want to make sure.

Intel say you should VMCLEAR on the last CPU to VMPTRLD the VMCS. For us
that means if v->arch.hvm_vmx.active_cpu != smp_processor_id() nor -1.
However VMPTRLD is not described as failing if this is not carried out. So,
I guess you may get away with it. If you want to be super safe you might
VMCLEAR on CPUs as they rendezvous with kdb.

 -- Keir



_______________________________________________
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®.