Changeset 624 in vbox
- Timestamp:
- Feb 5, 2007 10:03:11 AM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 18253
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/TRPM.cpp
r348 r624 510 510 STAM_REG(pVM, &pVM->trpm.s.StatForwardFailGC, STAMTYPE_COUNTER, "/TRPM/ForwardRaw/Fail/GC", STAMUNIT_OCCURENCES, "Failure to forward interrupt in raw mode."); 511 511 STAM_REG(pVM, &pVM->trpm.s.StatForwardFailHC, STAMTYPE_COUNTER, "/TRPM/ForwardRaw/Fail/HC", STAMUNIT_OCCURENCES, "Failure to forward interrupt in raw mode."); 512 STAM_REG(pVM, &pVM->trpm.s.StatForwardProfGC, STAMTYPE_PROFILE_ADV, "/TRPM/ForwardRaw/Prof/GC", STAMUNIT_TICKS_PER_CALL, "Profiling TRPMForwardTrap."); 513 STAM_REG(pVM, &pVM->trpm.s.StatForwardProfHC, STAMTYPE_PROFILE_ADV, "/TRPM/ForwardRaw/Prof/HC", STAMUNIT_TICKS_PER_CALL, "Profiling TRPMForwardTrap."); 512 514 513 515 /* -
trunk/src/VBox/VMM/TRPMInternal.h
r415 r624 157 157 STAMCOUNTER StatForwardFailHC; 158 158 159 STAMPROFILEADV StatForwardProfGC; 160 STAMPROFILEADV StatForwardProfHC; 161 159 162 /* R3: Statistics for interrupt handlers (allocated on the hypervisor heap). */ 160 163 R3PTRTYPE(PSTAMCOUNTER) paStatForwardedIRQR3; -
trunk/src/VBox/VMM/TRPMInternal.mac
r347 r624 64 64 .StatForwardFailHC resb STAMCOUNTER_size 65 65 66 .StatForwardProfGC resb STAMPROFILEADV_size 67 .StatForwardProfHC resb STAMPROFILEADV_size 68 66 69 .paStatForwardedIRQR3 RTR3PTR_RES 1 67 70 .paStatForwardedIRQR0 RTR0PTR_RES 1 -
trunk/src/VBox/VMM/VMMAll/TRPMAll.cpp
r98 r624 359 359 TRPMDECL(int) TRPMForwardTrap(PVM pVM, PCPUMCTXCORE pRegFrame, uint32_t iGate, uint32_t opsize, TRPMERRORCODE enmError, TRPMEVENT enmType) 360 360 { 361 #ifdef TRPM_FORWARD_TRAPS_IN_GC 361 362 X86EFLAGS eflags; 362 363 363 #ifdef TRPM_FORWARD_TRAPS_IN_GC 364 STAM_PROFILE_ADV_START(CTXSUFF(&pVM->trpm.s.StatForwardProf), a); 365 364 366 Log(("TRPMForwardTrap: eip=%VGv iGate=%d\n", pRegFrame->eip, iGate)); 365 367 … … 513 515 { 514 516 Log(("PGMPrefetchPage failed with rc=%Vrc\n", rc)); 515 return rc;517 goto failure; 516 518 } 517 519 #ifdef IN_GC … … 665 667 eflags.Bits.u2IOPL = 0; 666 668 667 STAM_COUNTER_INC(&pVM->trpm.s.CTXALLSUFF(paStatForwardedIRQ)[iGate]);668 669 Assert(eflags.Bits.u1IF); 669 670 Assert(eflags.Bits.u2IOPL == 0); 671 STAM_COUNTER_INC(&pVM->trpm.s.CTXALLSUFF(paStatForwardedIRQ)[iGate]); 672 STAM_PROFILE_ADV_STOP(CTXSUFF(&pVM->trpm.s.StatForwardProf), a); 673 670 674 CPUMGCCallGuestTrapHandler(pRegFrame, GuestIdte.Gen.u16SegSel | 1, pVM->trpm.s.aGuestTrapHandler[iGate], eflags.u32, ss_r0, (RTGCPTR)esp_r0); 671 675 /* does not return */ … … 681 685 pRegFrame->esp = esp_r0; 682 686 pRegFrame->ss = ss_r0 & ~X86_SEL_RPL; /* set rpl to ring 0 */ 687 STAM_PROFILE_ADV_STOP(CTXSUFF(&pVM->trpm.s.StatForwardProf), a); 683 688 return VINF_SUCCESS; 684 689 #endif … … 706 711 failure: 707 712 STAM_COUNTER_INC(&CTXSUFF(pVM->trpm.s.StatForwardFail)); 713 STAM_PROFILE_ADV_STOP(CTXSUFF(&pVM->trpm.s.StatForwardProf), a); 708 714 709 715 Log(("TRAP%02X: forwarding to REM (ss rpl=%d eflags=%08X VMIF=%d handler=%08X\n", iGate, pRegFrame->ss & X86_SEL_RPL, pRegFrame->eflags.u32, PATMAreInterruptsEnabledByCtxCore(pVM, pRegFrame), pVM->trpm.s.aGuestTrapHandler[iGate])); -
trunk/src/VBox/VMM/VMMGC/TRPMGCHandlers.cpp
r468 r624 521 521 } 522 522 } 523 intrc = TRPMForwardTrap(pVM, pRegFrame, (uint32_t)pCpu->param1.parval, pCpu->opsize, TRPM_TRAP_NO_ERRORCODE, TRPM_SOFTWARE_INT);523 rc = TRPMForwardTrap(pVM, pRegFrame, (uint32_t)pCpu->param1.parval, pCpu->opsize, TRPM_TRAP_NO_ERRORCODE, TRPM_SOFTWARE_INT); 524 524 if (VBOX_SUCCESS(rc) && rc != VINF_EM_RAW_GUEST_TRAP) 525 525 return trpmGCExitTrap(pVM, VINF_SUCCESS, pRegFrame); … … 564 564 { 565 565 uint32_t cbIgnored; 566 intrc = EMInterpretInstructionCPU(pVM, pCpu, pRegFrame, PC, &cbIgnored);566 rc = EMInterpretInstructionCPU(pVM, pCpu, pRegFrame, PC, &cbIgnored); 567 567 if (VBOX_SUCCESS(rc)) 568 568 pRegFrame->eip += pCpu->opsize;
Note:
See TracChangeset
for help on using the changeset viewer.