Changeset 13085 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Oct 8, 2008 3:12:13 PM (16 years ago)
- Location:
- trunk/src/VBox/VMM/VMMAll
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r13073 r13085 353 353 { 354 354 LogFlow(("PGMTrap0eHandler: uErr=%RGu pvFault=%VGv eip=%VGv\n", uErr, pvFault, pRegFrame->rip)); 355 STAM_PROFILE_START(&pVM->pgm.s.Stat GCTrap0e, a);355 STAM_PROFILE_START(&pVM->pgm.s.StatRZTrap0e, a); 356 356 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = NULL; } ); 357 357 … … 366 366 { 367 367 if (uErr & X86_TRAP_PF_RW) 368 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eUSNotPresentWrite);368 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eUSNotPresentWrite); 369 369 else 370 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eUSNotPresentRead);370 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eUSNotPresentRead); 371 371 } 372 372 else if (uErr & X86_TRAP_PF_RW) 373 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eUSWrite);373 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eUSWrite); 374 374 else if (uErr & X86_TRAP_PF_RSVD) 375 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eUSReserved);375 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eUSReserved); 376 376 else if (uErr & X86_TRAP_PF_ID) 377 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eUSNXE);377 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eUSNXE); 378 378 else 379 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eUSRead);379 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eUSRead); 380 380 } 381 381 else … … 384 384 { 385 385 if (uErr & X86_TRAP_PF_RW) 386 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eSVNotPresentWrite);386 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eSVNotPresentWrite); 387 387 else 388 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eSVNotPresentRead);388 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eSVNotPresentRead); 389 389 } 390 390 else if (uErr & X86_TRAP_PF_RW) 391 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eSVWrite);391 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eSVWrite); 392 392 else if (uErr & X86_TRAP_PF_ID) 393 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eSNXE);393 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eSNXE); 394 394 else if (uErr & X86_TRAP_PF_RSVD) 395 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eSVReserved);395 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eSVReserved); 396 396 } 397 397 #endif … … 404 404 rc = VINF_SUCCESS; 405 405 STAM_STATS({ if (!pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution)) 406 pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eMisc; });407 STAM_PROFILE_STOP_EX(&pVM->pgm.s.Stat GCTrap0e, pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution), a);406 pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2Misc; }); 407 STAM_PROFILE_STOP_EX(&pVM->pgm.s.StatRZTrap0e, pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution), a); 408 408 return rc; 409 409 } -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r13067 r13085 128 128 LogFlow(("Trap0eHandler: guest iPDSrc=%u not present CR3=%VGp\n", iPDSrc, CPUMGetGuestCR3(pVM) & X86_CR3_PAGE_MASK)); 129 129 # endif 130 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eGuestTrap; });130 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2GuestTrap; }); 131 131 TRPMSetErrorCode(pVM, uErr); 132 132 return VINF_EM_RAW_GUEST_TRAP; … … 188 188 * tracking, or this page fault is a genuine one, then return immediately. 189 189 */ 190 STAM_PROFILE_START(&pVM->pgm.s.Stat CheckPageFault, e);190 STAM_PROFILE_START(&pVM->pgm.s.StatRZTrap0eTimeCheckPageFault, e); 191 191 rc = PGM_BTH_NAME(CheckPageFault)(pVM, uErr, &pPDDst->a[iPDDst], &pPDSrc->a[iPDSrc], (RTGCUINTPTR)pvFault); 192 STAM_PROFILE_STOP(&pVM->pgm.s.Stat CheckPageFault, e);192 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeCheckPageFault, e); 193 193 if ( rc == VINF_PGM_HANDLED_DIRTY_BIT_FAULT 194 194 || rc == VINF_EM_RAW_GUEST_TRAP) 195 195 { 196 196 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) 197 = rc == VINF_PGM_HANDLED_DIRTY_BIT_FAULT ? &pVM->pgm.s.Stat Trap0eDirtyAndAccessedBits : &pVM->pgm.s.StatTrap0eGuestTrap; });197 = rc == VINF_PGM_HANDLED_DIRTY_BIT_FAULT ? &pVM->pgm.s.StatRZTrap0eTime2DirtyAndAccessed : &pVM->pgm.s.StatRZTrap0eTime2GuestTrap; }); 198 198 LogBird(("Trap0eHandler: returns %s\n", rc == VINF_PGM_HANDLED_DIRTY_BIT_FAULT ? "VINF_SUCCESS" : "VINF_EM_RAW_GUEST_TRAP")); 199 199 return rc == VINF_PGM_HANDLED_DIRTY_BIT_FAULT ? VINF_SUCCESS : rc; 200 200 } 201 201 202 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0ePD[iPDSrc]);202 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0ePD[iPDSrc]); 203 203 # endif /* PGM_WITH_PAGING(PGM_GST_TYPE, PGM_SHW_TYPE) */ 204 204 … … 230 230 231 231 { 232 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eSyncPT; });233 STAM_PROFILE_START(&pVM->pgm.s.Stat LazySyncPT, f);232 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2SyncPT; }); 233 STAM_PROFILE_START(&pVM->pgm.s.StatRZTrap0eTimeSyncPT, f); 234 234 LogFlow(("=>SyncPT %04x = %08x\n", iPDSrc, PdeSrc.au32[0])); 235 235 rc = PGM_BTH_NAME(SyncPT)(pVM, iPDSrc, pPDSrc, (RTGCUINTPTR)pvFault); 236 236 if (VBOX_SUCCESS(rc)) 237 237 { 238 STAM_PROFILE_STOP(&pVM->pgm.s.Stat LazySyncPT, f);238 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeSyncPT, f); 239 239 return rc; 240 240 } 241 241 Log(("SyncPT: %d failed!! rc=%d\n", iPDSrc, rc)); 242 242 VM_FF_SET(pVM, VM_FF_PGM_SYNC_CR3); /** @todo no need to do global sync, right? */ 243 STAM_PROFILE_STOP(&pVM->pgm.s.Stat LazySyncPT, f);243 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeSyncPT, f); 244 244 return VINF_PGM_SYNC_CR3; 245 245 } … … 255 255 if (pgmMapAreMappingsEnabled(&pVM->pgm.s)) 256 256 { 257 STAM_PROFILE_START(&pVM->pgm.s.Stat Mapping, a);257 STAM_PROFILE_START(&pVM->pgm.s.StatRZTrap0eTimeMapping, a); 258 258 PPGMMAPPING pMapping = pVM->pgm.s.CTX_SUFF(pMappings); 259 259 for ( ; pMapping; pMapping = pMapping->CTX_SUFF(pNext)) … … 272 272 if (pPDSrc->a[iPDSrc + iPT].n.u1Present) 273 273 { 274 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eConflicts);274 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eConflicts); 275 275 Log(("Trap0e: Detected Conflict %VGv-%VGv\n", pMapping->GCPtr, pMapping->GCPtrLast)); 276 276 VM_FF_SET(pVM, VM_FF_PGM_SYNC_CR3); /** @todo no need to do global sync,right? */ 277 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Mapping, a);277 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeMapping, a); 278 278 return VINF_PGM_SYNC_CR3; 279 279 } … … 296 296 rc = VINF_EM_RAW_EMULATE_INSTR; /* can't happen with VMX */ 297 297 # endif 298 STAM_COUNTER_INC(&pVM->pgm.s.Stat Trap0eMapHandler);299 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Mapping, a);298 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eHandlersMapping); 299 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeMapping, a); 300 300 return rc; 301 301 } … … 305 305 */ 306 306 TRPMSetErrorCode(pVM, uErr & ~X86_TRAP_PF_P); 307 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eMap);307 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eGuestPFMapping); 308 308 LogFlow(("PGM: Mapping access -> route trap to recompiler!\n")); 309 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Mapping, a);309 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeMapping, a); 310 310 return VINF_EM_RAW_GUEST_TRAP; 311 311 } 312 312 } 313 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Mapping, a);313 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeMapping, a); 314 314 } /* pgmAreMappingsEnabled(&pVM->pgm.s) */ 315 315 # endif /* PGM_WITH_PAGING(PGM_GST_TYPE, PGM_SHW_TYPE) */ … … 358 358 if (GCPhys != NIL_RTGCPHYS) 359 359 { 360 STAM_PROFILE_START(&pVM->pgm.s.Stat Handlers, b);360 STAM_PROFILE_START(&pVM->pgm.s.StatRZTrap0eTimeHandlers, b); 361 361 362 362 PPGMPAGE pPage; … … 392 392 { 393 393 AssertRC(rc); 394 STAM_COUNTER_INC(&pVM->pgm.s.Stat HandlersOutOfSync);395 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Handlers, b);396 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eOutOfSyncHndPhys; });394 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eHandlersOutOfSync); 395 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeHandlers, b); 396 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2OutOfSyncHndPhys; }); 397 397 return rc; 398 398 } … … 414 414 # endif 415 415 rc = VINF_EM_RAW_EMULATE_INSTR; 416 STAM_COUNTER_INC(&pVM->pgm.s.Stat HandlersPhysical);417 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Handlers, b);418 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eHndPhys; });416 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eHandlersPhysical); 417 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeHandlers, b); 418 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2HndPhys; }); 419 419 return rc; 420 420 } … … 438 438 { 439 439 AssertRC(rc); 440 STAM_COUNTER_INC(&pVM->pgm.s.Stat HandlersOutOfSync);441 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Handlers, b);442 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eOutOfSyncHndVirt; });440 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eHandlersOutOfSync); 441 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeHandlers, b); 442 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2OutOfSyncHndVirt; }); 443 443 return rc; 444 444 } … … 475 475 rc = VINF_EM_RAW_EMULATE_INSTR; /** @todo for VMX */ 476 476 # endif 477 STAM_COUNTER_INC(&pVM->pgm.s.Stat HandlersVirtual);478 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Handlers, b);479 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eHndVirt; });477 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eHandlersVirtual); 478 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeHandlers, b); 479 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2HndVirt; }); 480 480 return rc; 481 481 } … … 504 504 rc = VINF_EM_RAW_EMULATE_INSTR; /** @todo for VMX */ 505 505 # endif 506 STAM_COUNTER_INC(&pVM->pgm.s.Stat HandlersVirtualByPhys);507 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Handlers, b);508 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eHndVirt; });506 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eHandlersVirtualByPhys); 507 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeHandlers, b); 508 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2HndVirt; }); 509 509 return rc; 510 510 } … … 521 521 * write access handlers. Restart the instruction if it wasn't a write access. 522 522 */ 523 STAM_COUNTER_INC(&pVM->pgm.s.Stat HandlersUnhandled);523 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eHandlersUnhandled); 524 524 525 525 if ( !PGM_PAGE_HAS_ACTIVE_ALL_HANDLERS(pPage) … … 532 532 { 533 533 AssertRC(rc); 534 STAM_COUNTER_INC(&pVM->pgm.s.Stat HandlersOutOfSync);535 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Handlers, b);536 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eOutOfSyncHndPhys; });534 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eHandlersOutOfSync); 535 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeHandlers, b); 536 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2OutOfSyncHndPhys; }); 537 537 return rc; 538 538 } … … 547 547 PGM_PAGE_HAS_ANY_PHYSICAL_HANDLERS(pPage) ? " phys" : "", 548 548 PGM_PAGE_HAS_ANY_VIRTUAL_HANDLERS(pPage) ? " virt" : "")); 549 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Handlers, b);550 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eHndUnhandled; });549 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeHandlers, b); 550 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2HndUnhandled; }); 551 551 return rc; 552 552 } /* if any kind of handler */ … … 582 582 rc = VINF_EM_RAW_EMULATE_INSTR; /** @todo for VMX */ 583 583 # endif 584 STAM_COUNTER_INC(&pVM->pgm.s.Stat HandlersVirtualUnmarked);585 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Handlers, b);586 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eHndVirt; });584 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eHandlersVirtualUnmarked); 585 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeHandlers, b); 586 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2HndVirt; }); 587 587 return rc; 588 588 } … … 597 597 */ 598 598 LogFlow(("pgmPhysGetPageEx %VGp failed with %Vrc\n", GCPhys, rc)); 599 STAM_COUNTER_INC(&pVM->pgm.s.Stat HandlersInvalid);600 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Handlers, b);599 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eHandlersInvalid); 600 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeHandlers, b); 601 601 return VINF_EM_RAW_EMULATE_INSTR; 602 602 } 603 603 604 STAM_PROFILE_STOP(&pVM->pgm.s.Stat Handlers, b);604 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeHandlers, b); 605 605 606 606 # ifdef PGM_OUT_OF_SYNC_IN_GC … … 610 610 * Check it for page out-of-sync situation. 611 611 */ 612 STAM_PROFILE_START(&pVM->pgm.s.Stat OutOfSync, c);612 STAM_PROFILE_START(&pVM->pgm.s.StatRZTrap0eTimeOutOfSync, c); 613 613 614 614 if (!(uErr & X86_TRAP_PF_P)) … … 663 663 AssertRC(rc2); 664 664 665 STAM_PROFILE_STOP(&pVM->pgm.s.Stat OutOfSync, c);666 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eCSAM; });665 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeOutOfSync, c); 666 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2CSAM; }); 667 667 return rc; 668 668 } … … 714 714 { 715 715 /* The page was successfully synced, return to the guest. */ 716 STAM_PROFILE_STOP(&pVM->pgm.s.Stat OutOfSync, c);717 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eOutOfSync; });716 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeOutOfSync, c); 717 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2OutOfSync; }); 718 718 return VINF_SUCCESS; 719 719 } … … 754 754 AssertMsg(VBOX_SUCCESS(rc) && fPageShw & X86_PTE_RW, ("rc=%Vrc fPageShw=%VX64\n", rc, fPageShw)); 755 755 # endif /* VBOX_STRICT */ 756 STAM_PROFILE_STOP(&pVM->pgm.s.Stat OutOfSync, c);757 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.Stat Trap0eOutOfSyncObsHnd; });756 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeOutOfSync, c); 757 STAM_STATS({ pVM->pgm.s.CTX_SUFF(pStatTrap0eAttribution) = &pVM->pgm.s.StatRZTrap0eTime2OutOfSyncHndObs; }); 758 758 return VINF_SUCCESS; 759 759 } … … 761 761 /* Check to see if we need to emulate the instruction as X86_CR0_WP has been cleared. */ 762 762 if ( CPUMGetGuestCPL(pVM, pRegFrame) == 0 763 && ((CPUMGetGuestCR0(pVM) & (X86_CR0_WP |X86_CR0_PG)) == X86_CR0_PG)763 && ((CPUMGetGuestCR0(pVM) & (X86_CR0_WP | X86_CR0_PG)) == X86_CR0_PG) 764 764 && (uErr & (X86_TRAP_PF_RW | X86_TRAP_PF_P)) == (X86_TRAP_PF_RW | X86_TRAP_PF_P)) 765 765 { … … 771 771 rc = PGMInterpretInstruction(pVM, pRegFrame, pvFault); 772 772 if (VBOX_SUCCESS(rc)) 773 STAM_COUNTER_INC(&pVM->pgm.s.Stat Trap0eWPEmulGC);773 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eWPEmulInRZ); 774 774 else 775 STAM_COUNTER_INC(&pVM->pgm.s.Stat Trap0eWPEmulR3);775 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eWPEmulToR3); 776 776 return rc; 777 777 } 778 else 779 AssertMsgFailed(("Unexpected r/w page %x flag=%x\n", pvFault, (uint32_t)fPageGst)); 778 AssertMsgFailed(("Unexpected r/w page %RGv flag=%x rc=%Rrc\n", pvFault, (uint32_t)fPageGst, rc)); 780 779 } 781 782 780 } 783 781 … … 813 811 # endif /* PGM_WITH_PAGING(PGM_GST_TYPE, PGM_SHW_TYPE) */ 814 812 } 815 STAM_PROFILE_STOP(&pVM->pgm.s.Stat OutOfSync, c);813 STAM_PROFILE_STOP(&pVM->pgm.s.StatRZTrap0eTimeOutOfSync, c); 816 814 # endif /* PGM_OUT_OF_SYNC_IN_GC */ 817 815 } … … 841 839 */ 842 840 LogFlow(("PGM: Unhandled #PF -> route trap to recompiler!\n")); 843 STAM_COUNTER_INC(&pVM->pgm.s.Stat GCTrap0eUnhandled);841 STAM_COUNTER_INC(&pVM->pgm.s.StatRZTrap0eGuestPF); 844 842 return VINF_EM_RAW_GUEST_TRAP; 845 843 # else -
trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp
r13062 r13085 807 807 * Set the flags and flush shadow PT entries. 808 808 */ 809 STAM_COUNTER_INC(&pVM->pgm.s. StatHandlePhysicalReset);809 STAM_COUNTER_INC(&pVM->pgm.s.CTX_MID_Z(Stat,PhysHandlerReset)); 810 810 PPGMRAMRANGE pRam = pgmPhysGetRange(&pVM->pgm.s, GCPhys); 811 811 Assert(pRam); … … 997 997 int pgmHandlerVirtualFindByPhysAddr(PVM pVM, RTGCPHYS GCPhys, PPGMVIRTHANDLER *ppVirt, unsigned *piPage) 998 998 { 999 STAM_PROFILE_START( CTXSUFF(&pVM->pgm.s.StatVirtHandleSearchByPhys), a);999 STAM_PROFILE_START(&pVM->pgm.s.CTX_MID_Z(Stat,VirtHandlerSearchByPhys), a); 1000 1000 Assert(ppVirt); 1001 1001 … … 1012 1012 1013 1013 LogFlow(("PHYS2VIRT: found match for %RGp -> %RGv *piPage=%#x\n", GCPhys, (*ppVirt)->Core.Key, *piPage)); 1014 STAM_PROFILE_STOP( CTXSUFF(&pVM->pgm.s.StatVirtHandleSearchByPhys), a);1014 STAM_PROFILE_STOP(&pVM->pgm.s.CTX_MID_Z(Stat,VirtHandlerSearchByPhys), a); 1015 1015 return VINF_SUCCESS; 1016 1016 } 1017 1017 1018 1018 *ppVirt = NULL; 1019 STAM_PROFILE_STOP( CTXSUFF(&pVM->pgm.s.StatVirtHandleSearchByPhys), a);1019 STAM_PROFILE_STOP(&pVM->pgm.s.CTX_MID_Z(Stat,VirtHandlerSearchByPhys), a); 1020 1020 return VERR_PGM_HANDLER_NOT_FOUND; 1021 1021 }
Note:
See TracChangeset
for help on using the changeset viewer.