VirtualBox

Changeset 99812 in vbox


Ignore:
Timestamp:
May 16, 2023 9:32:15 AM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
157436
Message:

VMM/PGM: Nested VMX: bugref:10318 Fixes to flushing of large page page in the nested-guest case. Assertions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r99245 r99812  
    634634                if (uPde & EPT_PRESENT_MASK)
    635635                {
     636                    Assert(!(uPde & EPT_E_LEAF));
    636637                    Log7Func(("EPT PD iShw=%#x: %RX64 (%RGp) -> freeing it!\n", iShw, uPde, pPage->GCPhys));
    637638                    pgmPoolFree(pVM, uPde & EPT_PDE_PG_MASK, pPage->idx, iShw);
     
    648649                    if (uPde2 & EPT_PRESENT_MASK)
    649650                    {
     651                        Assert(!(uPde2 & EPT_E_LEAF));
    650652                        Log7Func(("EPT PD (2): iShw2=%#x: %RX64 (%RGp) -> freeing it!\n", iShw2, uPde2, pPage->GCPhys));
    651653                        pgmPoolFree(pVM, uPde2 & EPT_PDE_PG_MASK, pPage->idx, iShw2);
     
    35153517        /* Large page case only. */
    35163518        case PGMPOOLKIND_EPT_PD_FOR_PHYS:
     3519        case PGMPOOLKIND_EPT_PD_FOR_EPT_PD:
    35173520        {
    35183521            Assert(pVM->pgm.s.fNestedPaging);
     
    35203523            const uint64_t  u64 = PGM_PAGE_GET_HCPHYS(pPhysPage) | X86_PDE4M_P | X86_PDE4M_PS;
    35213524            PEPTPD          pPD = (PEPTPD)PGMPOOL_PAGE_2_PTR(pVM, pPage);
     3525
     3526            Assert(   pPage->enmKind != PGMPOOLKIND_EPT_PD_FOR_EPT_PD
     3527                   || (pPD->a[iPte].u & EPT_E_LEAF));
    35223528
    35233529            if ((pPD->a[iPte].u & (EPT_PDE2M_PG_MASK | X86_PDE4M_P | X86_PDE4M_PS)) == u64)
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