VirtualBox

Changeset 19627 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
May 12, 2009 2:11:47 PM (16 years ago)
Author:
vboxsync
Message:

PGM pool: allow multiple users of top-level paging structures (SHW_POOL_ROOT_IDX).

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PGMBth.h

    r19234 r19627  
    166166    }
    167167
    168     /* contruct a fake address which is unique across VCPUs. */
    169     GCPhysCR3 = RT_BIT_64(63) | ((uint64_t)pVCpu->idCpu << 32);
     168    /* contruct a fake address. */
     169    GCPhysCR3 = RT_BIT_64(63);
    170170    pVCpu->pgm.s.iShwUser      = SHW_POOL_ROOT_IDX;
    171171    pVCpu->pgm.s.iShwUserTable = GCPhysCR3 >> PAGE_SHIFT;
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r19572 r19627  
    22572257
    22582258    Log3(("pgmPoolTrackAddUser GCPhys = %RGp iUser %x iUserTable %x\n", pPage->GCPhys, iUser, iUserTable));
     2259
    22592260#  ifdef VBOX_STRICT
    22602261    /*
    2261      * Check that the entry doesn't already exists.
     2262     * Check that the entry doesn't already exists. We only allow multiple users of top-level paging structures (SHW_POOL_ROOT_IDX).
    22622263     */
    22632264    if (pPage->iUserHead != NIL_PGMPOOL_USER_INDEX)
     
    22672268        {
    22682269            Assert(i < pPool->cMaxUsers);
    2269             AssertMsg(paUsers[i].iUser != iUser || paUsers[i].iUserTable != iUserTable, ("%x %x vs new %x %x\n", paUsers[i].iUser, paUsers[i].iUserTable, iUser, iUserTable));
     2270            AssertMsg(iUser != PGMPOOL_IDX_PD || iUser != PGMPOOL_IDX_PDPT || iUser != PGMPOOL_IDX_NESTED_ROOT || iUser != PGMPOOL_IDX_AMD64_CR3 ||
     2271                      paUsers[i].iUser != iUser || paUsers[i].iUserTable != iUserTable, ("%x %x vs new %x %x\n", paUsers[i].iUser, paUsers[i].iUserTable, iUser, iUserTable));
    22702272            i = paUsers[i].iNext;
    22712273        } while (i != NIL_PGMPOOL_USER_INDEX);
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