Hello,

  When a vmentry failure occurs, where is it caught? I see that
VMX_EXIT_REASONS_FAILED_VMENTRY is defined but I don't see where it is
used. Shouldn't there be something in handle_excetion() like:

static int handle_exception(struct kvm_vcpu *vcpu, struct kvm_run
*kvm_run) {
        struct vcpu_vmx *vmx = to_vmx(vcpu);
        u32 intr_info, error_code, exit_reason;
        unsigned long cr2, rip;
        u32 vect_info;
        enum emulation_result er;

        vect_info = vmx->idt_vectoring_info;
        intr_info = vmcs_read32(VM_EXIT_INTR_INFO);
        exit_reason = vmcs_readl(VM_EXIT_REASON);

        if (unlikely(exit_reason & VMX_EXIT_REASONS_FAILED_VMENTRY))
                /* check why and do something */

...
}

  I tried but it didn't catch any vmentry failures (and I know that
there is at least one during the test).

  The idea is to find failure due to invalid guest state (like with old
gfxboot bug) and emulate the code until the guest recovers a valid
state.

Regards,
Guillaume

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to