Changeset 8860 in vbox for trunk/src/VBox/VMM
- Timestamp:
- May 15, 2008 2:43:16 PM (17 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/HWACCM.cpp
r8816 r8860 149 149 STAM_REG(pVM, &pVM->hwaccm.s.StatIntReinject, STAMTYPE_COUNTER, "/HWACCM/Irq/Reinject", STAMUNIT_OCCURENCES, "Nr of occurances"); 150 150 STAM_REG(pVM, &pVM->hwaccm.s.StatPendingHostIrq,STAMTYPE_COUNTER, "/HWACCM/Irq/PendingOnHost", STAMUNIT_OCCURENCES, "Nr of occurances"); 151 152 STAM_REG(pVM, &pVM->hwaccm.s.StatFlushPageManual, STAMTYPE_COUNTER, "/HWACCM/Flush/Page/Manual", STAMUNIT_OCCURENCES, "Nr of occurances"); 153 STAM_REG(pVM, &pVM->hwaccm.s.StatFlushTLBManual, STAMTYPE_COUNTER, "/HWACCM/Flush/TLB/Manual", STAMUNIT_OCCURENCES, "Nr of occurances"); 154 STAM_REG(pVM, &pVM->hwaccm.s.StatFlushTLBCRxChange, STAMTYPE_COUNTER, "/HWACCM/Flush/TLB/CRx", STAMUNIT_OCCURENCES, "Nr of occurances"); 155 STAM_REG(pVM, &pVM->hwaccm.s.StatFlushPageInvlpg, STAMTYPE_COUNTER, "/HWACCM/Flush/Page/Invlpg", STAMUNIT_OCCURENCES, "Nr of occurances"); 156 STAM_REG(pVM, &pVM->hwaccm.s.StatFlushTLBWorldSwitch, STAMTYPE_COUNTER, "/HWACCM/Flush/TLB/Switch", STAMUNIT_OCCURENCES, "Nr of occurances"); 157 STAM_REG(pVM, &pVM->hwaccm.s.StatNoFlushTLBWorldSwitch, STAMTYPE_COUNTER, "/HWACCM/Flush/TLB/Skipped", STAMUNIT_OCCURENCES, "Nr of occurances"); 151 158 152 159 pVM->hwaccm.s.pStatExitReason = 0; -
trunk/src/VBox/VMM/HWACCMInternal.h
r8853 r8860 308 308 STAMCOUNTER StatPendingHostIrq; 309 309 310 STAMCOUNTER StatFlushPageManual; 311 STAMCOUNTER StatFlushTLBManual; 312 STAMCOUNTER StatFlushPageInvlpg; 313 STAMCOUNTER StatFlushTLBWorldSwitch; 314 STAMCOUNTER StatNoFlushTLBWorldSwitch; 315 STAMCOUNTER StatFlushTLBCRxChange; 316 310 317 STAMCOUNTER StatSwitchGuestIrq; 311 318 STAMCOUNTER StatSwitchToR3; -
trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp
r8855 r8860 772 772 /* Make sure we flush the TLB when required. */ 773 773 pVMCB->ctrl.TLBCtrl.n.u1TLBFlush = pVM->hwaccm.s.svm.fForceTLBFlush; 774 #ifdef VBOX_WITH_STATISTICS 775 if (pVMCB->ctrl.TLBCtrl.n.u1TLBFlush) 776 STAM_COUNTER_INC(&pVM->hwaccm.s.StatFlushTLBWorldSwitch); 777 else 778 STAM_COUNTER_INC(&pVM->hwaccm.s.StatNoFlushTLBWorldSwitch); 779 #endif 774 780 775 781 /* In case we execute a goto ResumeExecution later on. */ … … 1245 1251 rc = SVMR0InterpretInvpg(pVM, CPUMCTX2CORE(pCtx), pVMCB->ctrl.TLBCtrl.n.u32ASID); 1246 1252 if (rc == VINF_SUCCESS) 1253 { 1254 STAM_COUNTER_INC(&pVM->hwaccm.s.StatFlushPageInvlpg); 1247 1255 goto ResumeExecution; /* eip already updated */ 1256 } 1248 1257 break; 1249 1258 } … … 1283 1292 AssertRC(rc); 1284 1293 1294 STAM_COUNTER_INC(&pVM->hwaccm.s.StatFlushTLBCRxChange); 1295 1285 1296 /** @note Force a TLB flush. SVM requires us to do it manually. */ 1286 1297 pVM->hwaccm.s.svm.fForceTLBFlush = true; … … 1722 1733 AssertMsgReturn(pVMCB, ("Invalid pVMCB\n"), VERR_EM_INTERNAL_ERROR); 1723 1734 1735 STAM_COUNTER_INC(&pVM->hwaccm.s.StatFlushPageManual); 1724 1736 SVMInvlpgA(GCVirt, pVMCB->ctrl.TLBCtrl.n.u32ASID); 1725 1737 return VINF_SUCCESS; … … 1736 1748 Log2(("SVMR0FlushTLB\n")); 1737 1749 pVM->hwaccm.s.svm.fForceTLBFlush = true; 1738 1750 STAM_COUNTER_INC(&pVM->hwaccm.s.StatFlushTLBManual); 1739 1751 return VINF_SUCCESS; 1740 1752 }
Note:
See TracChangeset
for help on using the changeset viewer.