VirtualBox

Changeset 44267 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jan 10, 2013 11:43:26 AM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
83147
Message:

VMM/VMMR0: HM bits.

Location:
trunk/src/VBox/VMM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp

    r44262 r44267  
    762762        VMXSetupCachedReadVmcs(pCache, VMX_VMCS32_RO_VM_INSTR_ERROR);
    763763        VMXSetupCachedReadVmcs(pCache, VMX_VMCS32_RO_EXIT_INSTR_LENGTH);
    764         VMXSetupCachedReadVmcs(pCache, VMX_VMCS32_RO_EXIT_INTERRUPTION_ERRCODE);
     764        VMXSetupCachedReadVmcs(pCache, VMX_VMCS32_RO_EXIT_INTERRUPTION_ERROR_CODE);
    765765        VMXSetupCachedReadVmcs(pCache, VMX_VMCS32_RO_EXIT_INTERRUPTION_INFO);
    766766        VMXSetupCachedReadVmcs(pCache, VMX_VMCS32_RO_EXIT_INSTR_INFO);
    767767        VMXSetupCachedReadVmcs(pCache, VMX_VMCS_RO_EXIT_QUALIFICATION);
    768768        VMXSetupCachedReadVmcs(pCache, VMX_VMCS32_RO_IDT_INFO);
    769         VMXSetupCachedReadVmcs(pCache, VMX_VMCS32_RO_IDT_ERRCODE);
     769        VMXSetupCachedReadVmcs(pCache, VMX_VMCS32_RO_IDT_ERROR_CODE);
    770770
    771771        if (pVM->hm.s.fNestedPaging)
     
    11781178            break;
    11791179        case VMX_EXIT_INTERRUPTION_INFO_TYPE_SW_INT:
    1180         case VMX_EXIT_INTERRUPTION_INFO_TYPE_SW_XCPT:
     1180        case VMX_EXIT_INTERRUPTION_INFO_TYPE_SW_XCPT: /** @todo Is classifying #BP, #OF as TRPM_SOFTWARE_INT correct? */
    11811181        case VMX_EXIT_INTERRUPTION_INFO_TYPE_DB_XCPT:
    11821182            enmTrapType = TRPM_SOFTWARE_INT;
     
    33093309    rc2 |= VMXReadCachedVmcs(VMX_VMCS32_RO_EXIT_INTERRUPTION_INFO, &intInfo);
    33103310    /* might not be valid; depends on VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_IS_VALID. */
    3311     rc2 |= VMXReadCachedVmcs(VMX_VMCS32_RO_EXIT_INTERRUPTION_ERRCODE, &errCode);
     3311    rc2 |= VMXReadCachedVmcs(VMX_VMCS32_RO_EXIT_INTERRUPTION_ERROR_CODE, &errCode);
    33123312    rc2 |= VMXReadCachedVmcs(VMX_VMCS32_RO_EXIT_INSTR_INFO, &instrInfo);
    33133313    rc2 |= VMXReadCachedVmcs(VMX_VMCS_RO_EXIT_QUALIFICATION, &exitQualification);
     
    33443344        if (VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_IS_VALID(pVCpu->hm.s.Event.u64IntrInfo))
    33453345        {
    3346             rc2 = VMXReadCachedVmcs(VMX_VMCS32_RO_IDT_ERRCODE, &val);
     3346            rc2 = VMXReadCachedVmcs(VMX_VMCS32_RO_IDT_ERROR_CODE, &val);
    33473347            AssertRC(rc2);
    33483348            pVCpu->hm.s.Event.u32ErrCode  = val;
     
    42764276        STAM_COUNTER_INC((exitReason == VMX_EXIT_RDMSR) ? &pVCpu->hm.s.StatExitRdmsr : &pVCpu->hm.s.StatExitWrmsr);
    42774277
    4278         /*
    4279          * Note: The Intel spec. claims there's an REX version of RDMSR that's slightly different,
    4280          * so we play safe by completely disassembling the instruction.
    4281          */
    42824278        Log2(("VMX: %s\n", (exitReason == VMX_EXIT_RDMSR) ? "rdmsr" : "wrmsr"));
    42834279        rc = EMInterpretInstruction(pVCpu, CPUMCTX2CORE(pCtx), 0);
     
    54335429        case VMX_VMCS32_RO_VM_INSTR_ERROR:
    54345430        case VMX_VMCS32_RO_EXIT_INSTR_LENGTH:
    5435         case VMX_VMCS32_RO_EXIT_INTERRUPTION_ERRCODE:
     5431        case VMX_VMCS32_RO_EXIT_INTERRUPTION_ERROR_CODE:
    54365432        case VMX_VMCS32_RO_EXIT_INTERRUPTION_INFO:
    54375433        case VMX_VMCS32_RO_EXIT_INSTR_INFO:
    54385434        case VMX_VMCS_RO_EXIT_QUALIFICATION:
    54395435        case VMX_VMCS32_RO_IDT_INFO:
    5440         case VMX_VMCS32_RO_IDT_ERRCODE:
     5436        case VMX_VMCS32_RO_IDT_ERROR_CODE:
    54415437        case VMX_VMCS_GUEST_CR3:
    54425438        case VMX_VMCS64_EXIT_GUEST_PHYS_ADDR_FULL:
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.h

    r43930 r44267  
    8888#define VMX_VMCS32_RO_VM_INSTR_ERROR_CACHE_IDX                              49
    8989#define VMX_VMCS32_RO_EXIT_INSTR_LENGTH_CACHE_IDX                           50
    90 #define VMX_VMCS32_RO_EXIT_INTERRUPTION_ERRCODE_CACHE_IDX                   51
     90#define VMX_VMCS32_RO_EXIT_INTERRUPTION_ERROR_CODE_CACHE_IDX                51
    9191#define VMX_VMCS32_RO_EXIT_INSTR_INFO_CACHE_IDX                             52
    9292#define VMX_VMCS32_RO_EXIT_INTERRUPTION_INFO_CACHE_IDX                      53
    9393#define VMX_VMCS_RO_EXIT_QUALIFICATION_CACHE_IDX                            54
    9494#define VMX_VMCS32_RO_IDT_INFO_CACHE_IDX                                    55
    95 #define VMX_VMCS32_RO_IDT_ERRCODE_CACHE_IDX                                 56
    96 #define VMX_VMCS_MAX_CACHE_IDX                                              (VMX_VMCS32_RO_IDT_ERRCODE_CACHE_IDX + 1)
     95#define VMX_VMCS32_RO_IDT_ERROR_CODE_CACHE_IDX                              56
     96#define VMX_VMCS_MAX_CACHE_IDX                                              (VMX_VMCS32_RO_IDT_ERROR_CODE_CACHE_IDX + 1)
    9797#define VMX_VMCS_GUEST_CR3_CACHE_IDX                                        57
    9898#define VMX_VMCS64_EXIT_GUEST_PHYS_ADDR_FULL_CACHE_IDX                      58
  • trunk/src/VBox/VMM/VMMR3/HM.cpp

    r44259 r44267  
    554554        HM_REG_COUNTER(&pVCpu->hm.s.StatExitPreemptTimer,       "/HM/CPU%d/Exit/PreemptTimer");
    555555        HM_REG_COUNTER(&pVCpu->hm.s.StatExitTprBelowThreshold,  "/HM/CPU%d/Exit/TprBelowThreshold");
     556        HM_REG_COUNTER(&pVCpu->hm.s.StatExitTaskSwitch,         "/HM/CPU%d/Exit/TaskSwitch");
    556557        HM_REG_COUNTER(&pVCpu->hm.s.StatExitMtf,                "/HM/CPU%d/Exit/MonitorTrapFlag");
    557558
  • trunk/src/VBox/VMM/include/HMInternal.h

    r44259 r44267  
    789789    STAMCOUNTER             StatExitPreemptTimer;
    790790    STAMCOUNTER             StatExitTprBelowThreshold;
     791    STAMCOUNTER             StatExitTaskSwitch;
    791792    STAMCOUNTER             StatExitMtf;
    792793    STAMCOUNTER             StatIntReinject;
Note: See TracChangeset for help on using the changeset viewer.

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