VirtualBox

Changeset 91904 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Oct 20, 2021 4:54:47 PM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
147709
Message:

VMM: Nested VMX: bugref:10092 EPT guest paging mode boiler plate and some ifdef'd disabled extras.

Location:
trunk/src/VBox/VMM/VMMR3
Files:
2 edited

Legend:

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

    r91854 r91904  
    15591559        pVM->pgm.s.HCPhysInvMmioPg |= UINT64_C(0x000f0000000000);
    15601560    }
     1561    Assert(pVM->cpum.ro.GuestFeatures.cMaxPhysAddrWidth == cMaxPhysAddrWidth);
    15611562
    15621563    /** @todo query from CPUM. */
     
    15981599        pVCpu->pgm.s.fGstAmd64ShadowedPdpeMask  = X86_PDPE_P  | X86_PDPE_RW  | X86_PDPE_US  | X86_PDPE_A;
    15991600        pVCpu->pgm.s.fGstAmd64ShadowedPml4eMask = X86_PML4E_P | X86_PML4E_RW | X86_PML4E_US | X86_PML4E_A;
     1601
     1602#ifdef VBOX_WITH_NESTED_HWVIRT_VMX_EPT
     1603        pVCpu->pgm.s.fGstEptMbzPteMask        = fMbzPageFrameMask | EPT_PTE_MBZ_MASK;
     1604        pVCpu->pgm.s.fGstEptMbzPdeMask        = fMbzPageFrameMask | EPT_PDE_MBZ_MASK;
     1605        pVCpu->pgm.s.fGstEptMbzBigPdeMask     = fMbzPageFrameMask | EPT_PDE2M_MBZ_MASK;
     1606        pVCpu->pgm.s.fGstEptMbzPdpeMask       = fMbzPageFrameMask | EPT_PDPTE_MBZ_MASK;
     1607        pVCpu->pgm.s.fGstEptMbzBigPdpeMask    = fMbzPageFrameMask | EPT_PDPTE1G_MBZ_MASK;
     1608        pVCpu->pgm.s.fGstEptMbzPml4eMask      = fMbzPageFrameMask | EPT_PML4E_MBZ_MASK;
     1609
     1610        /* If any of the features (in the assert below) are enabled, we might have to shadow the relevant bits. */
     1611        Assert(   !pVM->cpum.ro.GuestFeatures.fVmxModeBasedExecuteEpt
     1612               && !pVM->cpum.ro.GuestFeatures.fVmxSppEpt
     1613               && !pVM->cpum.ro.GuestFeatures.fVmxEptXcptVe);
     1614        pVCpu->pgm.s.fGstEptPresentMask         = EPT_E_READ | EPT_E_WRITE | EPT_E_EXECUTE;
     1615        pVCpu->pgm.s.fGstEptShadowedPml4eMask   = EPT_E_READ | EPT_E_WRITE | EPT_E_EXECUTE | EPT_E_ACCESSED;
     1616        pVCpu->pgm.s.fGstEptShadowedPdpeMask    = EPT_E_READ | EPT_E_WRITE | EPT_E_EXECUTE | EPT_E_ACCESSED;
     1617        pVCpu->pgm.s.fGstEptShadowedBigPdpeMask = EPT_E_READ | EPT_E_WRITE | EPT_E_EXECUTE | EPT_E_ACCESSED | EPT_E_DIRTY;
     1618        pVCpu->pgm.s.fGstEptShadowedPdeMask     = EPT_E_READ | EPT_E_WRITE | EPT_E_EXECUTE | EPT_E_ACCESSED;
     1619        pVCpu->pgm.s.fGstEptShadowedBigPdeMask  = EPT_E_READ | EPT_E_WRITE | EPT_E_EXECUTE | EPT_E_ACCESSED | EPT_E_DIRTY;
     1620        pVCpu->pgm.s.fGstEptShadowedPteMask     = EPT_E_READ | EPT_E_WRITE | EPT_E_EXECUTE | EPT_E_ACCESSED | EPT_E_DIRTY;
     1621#endif
    16001622    }
    16011623
  • trunk/src/VBox/VMM/VMMR3/PGMDbg.cpp

    r91854 r91904  
    16501650    int             rc;
    16511651    unsigned const  cch     = pState->cchAddress;
    1652     uint64_t const  cr3Mask = pState->fEpt ? X86_CR3_AMD64_PAGE_MASK
     1652    uint64_t const  cr3Mask = pState->fEpt ? X86_CR3_AMD64_PAGE_MASK    /** @todo this should be X86_CR3_EPT_PAGE_MASK */
    16531653                            : pState->fLme ? X86_CR3_AMD64_PAGE_MASK
    16541654                            : pState->fPae ? X86_CR3_PAE_PAGE_MASK
     
    23292329    int             rc;
    23302330    unsigned const  cch     = pState->cchAddress;
    2331     uint64_t const  cr3Mask = pState->fEpt ? X86_CR3_AMD64_PAGE_MASK
     2331    uint64_t const  cr3Mask = pState->fEpt ? X86_CR3_AMD64_PAGE_MASK    /** @todo this should be X86_CR3_EPT_PAGE_MASK */
    23322332                            : pState->fLme ? X86_CR3_AMD64_PAGE_MASK
    23332333                            : pState->fPae ? X86_CR3_PAE_PAGE_MASK
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