VirtualBox

Changeset 42893 in vbox for trunk/src


Ignore:
Timestamp:
Aug 21, 2012 7:58:41 AM (12 years ago)
Author:
vboxsync
Message:

VMM/VMMR3/HWACCM: log more during VMX_UNABLE_TO_START_VM errors.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/HWACCM.cpp

    r42807 r42893  
    26702670    for (VMCPUID i = 0; i < pVM->cCpus; i++)
    26712671    {
    2672         switch(iStatusCode)
     2672        switch (iStatusCode)
    26732673        {
    2674         case VERR_VMX_INVALID_VMCS_FIELD:
    2675             break;
    2676 
    2677         case VERR_VMX_INVALID_VMCS_PTR:
    2678             LogRel(("VERR_VMX_INVALID_VMCS_PTR: CPU%d Current pointer %RGp vs %RGp\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.u64VMCSPhys, pVM->aCpus[i].hwaccm.s.vmx.HCPhysVMCS));
    2679             LogRel(("VERR_VMX_INVALID_VMCS_PTR: CPU%d Current VMCS version %x\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.ulVMCSRevision));
    2680             LogRel(("VERR_VMX_INVALID_VMCS_PTR: CPU%d Entered Cpu %d\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.idEnteredCpu));
    2681             LogRel(("VERR_VMX_INVALID_VMCS_PTR: CPU%d Current Cpu %d\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.idCurrentCpu));
    2682             break;
    2683 
    2684         case VERR_VMX_UNABLE_TO_START_VM:
    2685             LogRel(("VERR_VMX_UNABLE_TO_START_VM: CPU%d instruction error %x\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.ulInstrError));
    2686             LogRel(("VERR_VMX_UNABLE_TO_START_VM: CPU%d exit reason       %x\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.ulExitReason));
    2687 #if 0 /* @todo dump the current control fields to the release log */
    2688             if (pVM->aCpus[i].hwaccm.s.vmx.lasterror.ulInstrError == VMX_ERROR_VMENTRY_INVALID_CONTROL_FIELDS)
    2689             {
    2690 
    2691             }
     2674            case VERR_VMX_INVALID_VMCS_FIELD:
     2675                break;
     2676
     2677            case VERR_VMX_INVALID_VMCS_PTR:
     2678                LogRel(("VERR_VMX_INVALID_VMCS_PTR: CPU%d Current pointer %RGp vs %RGp\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.u64VMCSPhys, pVM->aCpus[i].hwaccm.s.vmx.HCPhysVMCS));
     2679                LogRel(("VERR_VMX_INVALID_VMCS_PTR: CPU%d Current VMCS version %x\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.ulVMCSRevision));
     2680                LogRel(("VERR_VMX_INVALID_VMCS_PTR: CPU%d Entered Cpu %d\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.idEnteredCpu));
     2681                LogRel(("VERR_VMX_INVALID_VMCS_PTR: CPU%d Current Cpu %d\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.idCurrentCpu));
     2682                break;
     2683
     2684            case VERR_VMX_UNABLE_TO_START_VM:
     2685                LogRel(("VERR_VMX_UNABLE_TO_START_VM: CPU%d instruction error %x\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.ulInstrError));
     2686                LogRel(("VERR_VMX_UNABLE_TO_START_VM: CPU%d exit reason       %x\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.ulExitReason));
     2687                if (pVM->aCpus[i].hwaccm.s.vmx.lasterror.ulInstrError == VMX_ERROR_VMENTRY_INVALID_CONTROL_FIELDS)
     2688                {
     2689                    LogRel(("VERR_VMX_UNABLE_TO_START_VM: Cpu%d MSRBitmapPhys %RHp\n", i, pVM->aCpus[i].hwaccm.s.vmx.pMSRBitmapPhys));
     2690#ifdef VBOX_WITH_AUTO_MSR_LOAD_RESTORE
     2691                    LogRel(("VERR_VMX_UNABLE_TO_START_VM: Cpu%d GuestMSRPhys  %RHp\n", i, pVM->aCpus[i].hwaccm.s.vmx.pGuestMSRPhys));
     2692                    LogRel(("VERR_VMX_UNABLE_TO_START_VM: Cpu%d HostMsrPhys   %RHp\n", i, pVM->aCpus[i].hwaccm.s.vmx.pHostMSRPhys));
     2693                    LogRel(("VERR_VMX_UNABLE_TO_START_VM: Cpu%d HostMsrPhys   %x\n",   i, pVM->aCpus[i].hwaccm.s.vmx.cCachedMSRs));
    26922694#endif
    2693             break;
    2694 
    2695         case VERR_VMX_UNABLE_TO_RESUME_VM:
    2696             LogRel(("VERR_VMX_UNABLE_TO_RESUME_VM: CPU%d instruction error %x\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.ulInstrError));
    2697             LogRel(("VERR_VMX_UNABLE_TO_RESUME_VM: CPU%d exit reason       %x\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.ulExitReason));
    2698             break;
    2699 
    2700         case VERR_VMX_INVALID_VMXON_PTR:
    2701             break;
     2695                }
     2696                /** @todo Log VM-entry event injection control fields
     2697                 *        VMX_VMCS_CTRL_ENTRY_IRQ_INFO, VMX_VMCS_CTRL_ENTRY_EXCEPTION_ERRCODE
     2698                 *        and VMX_VMCS_CTRL_ENTRY_INSTR_LENGTH from the VMCS. */
     2699                break;
     2700
     2701            case VERR_VMX_UNABLE_TO_RESUME_VM:
     2702                LogRel(("VERR_VMX_UNABLE_TO_RESUME_VM: CPU%d instruction error %x\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.ulInstrError));
     2703                LogRel(("VERR_VMX_UNABLE_TO_RESUME_VM: CPU%d exit reason       %x\n", i, pVM->aCpus[i].hwaccm.s.vmx.lasterror.ulExitReason));
     2704                break;
     2705
     2706            case VERR_VMX_INVALID_VMXON_PTR:
     2707                break;
    27022708        }
     2709    }
     2710
     2711    if (iStatusCode == VERR_VMX_UNABLE_TO_START_VM)
     2712    {
     2713        LogRel(("VERR_VMX_UNABLE_TO_START_VM: VM-entry allowed    %x\n", pVM->hwaccm.s.vmx.msr.vmx_entry.n.allowed1));
     2714        LogRel(("VERR_VMX_UNABLE_TO_START_VM: VM-entry disallowed %x\n", pVM->hwaccm.s.vmx.msr.vmx_entry.n.disallowed0));
    27032715    }
    27042716}
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette