VirtualBox

Changeset 9074 in vbox for trunk/src


Ignore:
Timestamp:
May 23, 2008 12:11:36 PM (17 years ago)
Author:
vboxsync
Message:

Log normal page faults in nested paging mode too (DEBUG only).

File:
1 edited

Legend:

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

    r9073 r9074  
    277277
    278278    pVMCB->ctrl.u32InterceptException = HWACCM_SVM_TRAP_MASK;
     279#ifndef DEBUG
    279280    if (pVM->hwaccm.s.fNestedPaging)
    280281        pVMCB->ctrl.u32InterceptException &= ~RT_BIT(14);   /* no longer need to intercept #PF. */
     282#endif
    281283
    282284    pVMCB->ctrl.u32InterceptCtrl1 =   SVM_CTRL1_INTERCEPT_INTR
     
    11541156            RTGCUINTPTR uFaultAddress  = pVMCB->ctrl.u64ExitInfo2;     /* EXITINFO2 = fault address */
    11551157
     1158#ifdef DEBUG
     1159            if (pVM->hwaccm.s.fNestedPaging)
     1160            {   /* A genuine pagefault.
     1161                 * Forward the trap to the guest by injecting the exception and resuming execution.
     1162                 */
     1163                Log2(("Page fault at %VGv cr2=%VGv error code %x\n", pCtx->eip, uFaultAddress, errCode));
     1164                STAM_COUNTER_INC(&pVM->hwaccm.s.StatExitGuestPF);
     1165
     1166                TRPMResetTrap(pVM);
     1167
     1168                /* Now we must update CR2. */
     1169                pCtx->cr2 = uFaultAddress;
     1170
     1171                Event.au64[0]               = 0;
     1172                Event.n.u3Type              = SVM_EVENT_EXCEPTION;
     1173                Event.n.u1Valid             = 1;
     1174                Event.n.u8Vector            = X86_XCPT_PF;
     1175                Event.n.u1ErrorCodeValid    = 1;
     1176                Event.n.u32ErrorCode        = errCode;
     1177
     1178                SVMR0InjectEvent(pVM, pVMCB, pCtx, &Event);
     1179
     1180                STAM_PROFILE_ADV_STOP(&pVM->hwaccm.s.StatExit, x);
     1181                goto ResumeExecution;
     1182            }
     1183#endif
    11561184            Assert(!pVM->hwaccm.s.fNestedPaging);
    11571185
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