VirtualBox

Changeset 93922 in vbox for trunk/src/VBox/VMM/VMMR3/PGM.cpp


Ignore:
Timestamp:
Feb 24, 2022 3:14:31 PM (3 years ago)
Author:
vboxsync
Message:

VMM: Nested VMX: bugref:10092 EPT VM-exit handling with HM ring-0 code.

File:
1 edited

Legend:

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

    r93905 r93922  
    10241024        {
    10251025            PVMCPU pVCpu = pVM->apCpusR3[i];
    1026             rc = PGMHCChangeMode(pVM, pVCpu, PGMMODE_REAL);
     1026            rc = PGMHCChangeMode(pVM, pVCpu, PGMMODE_REAL, false /* fForce */);
    10271027            if (RT_FAILURE(rc))
    10281028                break;
     
    16471647        pVM->pgm.s.HCPhysInvMmioPg |= UINT64_C(0x000f0000000000);
    16481648    }
    1649     Assert(pVM->cpum.ro.GuestFeatures.cMaxPhysAddrWidth == cMaxPhysAddrWidth);
     1649    /* Disabled the below assertion -- triggers 24 vs 39 on my Intel Skylake box for a 32-bit (Guest-type Other/Unknown) VM. */
     1650    //AssertMsg(pVM->cpum.ro.GuestFeatures.cMaxPhysAddrWidth == cMaxPhysAddrWidth,
     1651    //          ("CPUM %u - PGM %u\n", pVM->cpum.ro.GuestFeatures.cMaxPhysAddrWidth, cMaxPhysAddrWidth));
    16501652#else
    16511653    uint32_t const cMaxPhysAddrWidth = pVM->cpum.ro.GuestFeatures.cMaxPhysAddrWidth;
     
    18521854    pVCpu->pgm.s.GCPhysNstGstCR3 = NIL_RTGCPHYS;
    18531855
    1854     int rc = PGMHCChangeMode(pVM, pVCpu, PGMMODE_REAL);
     1856    int rc = PGMHCChangeMode(pVM, pVCpu, PGMMODE_REAL, false /* fForce */);
    18551857    AssertReleaseRC(rc);
    18561858
     
    19181920        PVMCPU  pVCpu = pVM->apCpusR3[i];
    19191921
    1920         int rc = PGMHCChangeMode(pVM, pVCpu, PGMMODE_REAL);
     1922        int rc = PGMHCChangeMode(pVM, pVCpu, PGMMODE_REAL, false /* fForce */);
    19211923        AssertReleaseRC(rc);
    19221924
     
    22982300{
    22992301    pVCpu->pgm.s.enmShadowMode = PGMMODE_INVALID;
    2300     int rc = PGMHCChangeMode(pVM, pVCpu, PGMGetGuestMode(pVCpu));
     2302    int rc = PGMHCChangeMode(pVM, pVCpu, PGMGetGuestMode(pVCpu), false /* fForce */);
    23012303    Assert(VMCPU_FF_IS_SET(pVCpu, VMCPU_FF_PGM_SYNC_CR3));
    23022304    AssertRCReturn(rc, rc);
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