Changeset 43509 in vbox for trunk/src/VBox/VMM/VMMR0
- Timestamp:
- Oct 2, 2012 2:15:17 PM (12 years ago)
- Location:
- trunk/src/VBox/VMM/VMMR0
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp
r43496 r43509 1004 1004 pvVMCB->ctrl.u32InterceptCtrl1 &= ~SVM_CTRL1_INTERCEPT_RDTSC; 1005 1005 pvVMCB->ctrl.u32InterceptCtrl2 &= ~SVM_CTRL2_INTERCEPT_RDTSCP; 1006 STAM_COUNTER_INC(&pVCpu->hm.s.StatT SCOffset);1006 STAM_COUNTER_INC(&pVCpu->hm.s.StatTscOffset); 1007 1007 } 1008 1008 else … … 1014 1014 pvVMCB->ctrl.u32InterceptCtrl1 |= SVM_CTRL1_INTERCEPT_RDTSC; 1015 1015 pvVMCB->ctrl.u32InterceptCtrl2 |= SVM_CTRL2_INTERCEPT_RDTSCP; 1016 STAM_COUNTER_INC(&pVCpu->hm.s.StatT SCInterceptOverFlow);1016 STAM_COUNTER_INC(&pVCpu->hm.s.StatTscInterceptOverFlow); 1017 1017 } 1018 1018 } … … 1021 1021 pvVMCB->ctrl.u32InterceptCtrl1 |= SVM_CTRL1_INTERCEPT_RDTSC; 1022 1022 pvVMCB->ctrl.u32InterceptCtrl2 |= SVM_CTRL2_INTERCEPT_RDTSCP; 1023 STAM_COUNTER_INC(&pVCpu->hm.s.StatT SCIntercept);1023 STAM_COUNTER_INC(&pVCpu->hm.s.StatTscIntercept); 1024 1024 } 1025 1025 … … 1179 1179 #ifdef VBOX_WITH_STATISTICS 1180 1180 if (pvVMCB->ctrl.TLBCtrl.n.u8TLBFlush == SVM_TLB_FLUSH_NOTHING) 1181 STAM_COUNTER_INC(&pVCpu->hm.s.StatNoFlushT LBWorldSwitch);1181 STAM_COUNTER_INC(&pVCpu->hm.s.StatNoFlushTlbWorldSwitch); 1182 1182 else if ( pvVMCB->ctrl.TLBCtrl.n.u8TLBFlush == SVM_TLB_FLUSH_SINGLE_CONTEXT 1183 1183 || pvVMCB->ctrl.TLBCtrl.n.u8TLBFlush == SVM_TLB_FLUSH_SINGLE_CONTEXT_RETAIN_GLOBALS) … … 1186 1186 } 1187 1187 else 1188 STAM_COUNTER_INC(&pVCpu->hm.s.StatFlushT LBWorldSwitch);1188 STAM_COUNTER_INC(&pVCpu->hm.s.StatFlushTlbWorldSwitch); 1189 1189 #endif 1190 1190 } … … 1797 1797 #ifdef VBOX_WITH_STATISTICS 1798 1798 if (exitCode == SVM_EXIT_NPF) 1799 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitReasonN PF);1799 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitReasonNpf); 1800 1800 else 1801 1801 STAM_COUNTER_INC(&pVCpu->hm.s.paStatExitReasonR0[exitCode & MASK_EXITREASON_STAT]); … … 2523 2523 static uint32_t const aIOSize[4] = { 1, 2, 0, 4 }; 2524 2524 2525 STAM_COUNTER_INC(&pVCpu->hm.s.StatDRxI OCheck);2525 STAM_COUNTER_INC(&pVCpu->hm.s.StatDRxIoCheck); 2526 2526 for (unsigned i = 0; i < 4; i++) 2527 2527 { -
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r43498 r43509 2246 2246 rc = VMXWriteVMCS(VMX_VMCS_CTRL_PROC_EXEC_CONTROLS, pVCpu->hm.s.vmx.proc_ctls); 2247 2247 AssertRC(rc); 2248 STAM_COUNTER_INC(&pVCpu->hm.s.StatT SCOffset);2248 STAM_COUNTER_INC(&pVCpu->hm.s.StatTscOffset); 2249 2249 } 2250 2250 else … … 2258 2258 rc = VMXWriteVMCS(VMX_VMCS_CTRL_PROC_EXEC_CONTROLS, pVCpu->hm.s.vmx.proc_ctls); 2259 2259 AssertRC(rc); 2260 STAM_COUNTER_INC(&pVCpu->hm.s.StatT SCInterceptOverFlow);2260 STAM_COUNTER_INC(&pVCpu->hm.s.StatTscInterceptOverFlow); 2261 2261 } 2262 2262 } … … 2266 2266 rc = VMXWriteVMCS(VMX_VMCS_CTRL_PROC_EXEC_CONTROLS, pVCpu->hm.s.vmx.proc_ctls); 2267 2267 AssertRC(rc); 2268 STAM_COUNTER_INC(&pVCpu->hm.s.StatT SCIntercept);2268 STAM_COUNTER_INC(&pVCpu->hm.s.StatTscIntercept); 2269 2269 } 2270 2270 … … 2553 2553 } 2554 2554 else 2555 { 2556 #ifdef VBOX_WITH_STATISTICS 2557 STAM_COUNTER_INC(&pVCpu->hm.s.StatNoFlushTLBWorldSwitch); 2558 #endif 2559 } 2560 } 2555 STAM_COUNTER_INC(&pVCpu->hm.s.StatNoFlushTlbWorldSwitch); 2556 } 2557 2561 2558 pVCpu->hm.s.TlbShootdown.cPages = 0; 2562 2559 VMCPU_FF_CLEAR(pVCpu, VMCPU_FF_TLB_SHOOTDOWN); … … 2631 2628 2632 2629 #ifdef VBOX_WITH_STATISTICS 2630 /** @todo r=ramshankar: this is not accurate anymore with the VPID+EPT 2631 * handling. Should be fixed later. */ 2633 2632 if (pVCpu->hm.s.fForceTLBFlush) 2634 STAM_COUNTER_INC(&pVCpu->hm.s.StatFlushT LBWorldSwitch);2633 STAM_COUNTER_INC(&pVCpu->hm.s.StatFlushTlbWorldSwitch); 2635 2634 else 2636 STAM_COUNTER_INC(&pVCpu->hm.s.StatNoFlushT LBWorldSwitch);2635 STAM_COUNTER_INC(&pVCpu->hm.s.StatNoFlushTlbWorldSwitch); 2637 2636 #endif 2638 2637 } … … 2731 2730 2732 2731 # ifdef VBOX_WITH_STATISTICS 2732 /** @todo r=ramshankar: this is not accurate anymore with EPT+VPID handling. 2733 * Should be fixed later. */ 2733 2734 if (pVCpu->hm.s.fForceTLBFlush) 2734 STAM_COUNTER_INC(&pVCpu->hm.s.StatFlushT LBWorldSwitch);2735 STAM_COUNTER_INC(&pVCpu->hm.s.StatFlushTlbWorldSwitch); 2735 2736 else 2736 STAM_COUNTER_INC(&pVCpu->hm.s.StatNoFlushT LBWorldSwitch);2737 STAM_COUNTER_INC(&pVCpu->hm.s.StatNoFlushTlbWorldSwitch); 2737 2738 # endif 2738 2739 } … … 4034 4035 /* We've successfully synced our shadow pages, so let's just continue execution. */ 4035 4036 Log2(("Shadow page fault at %RGv cr2=%RGp error code %x\n", (RTGCPTR)pCtx->rip, exitQualification , errCode)); 4036 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitReasonN PF);4037 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitReasonNpf); 4037 4038 4038 4039 TRPMResetTrap(pVCpu); … … 4512 4513 if (pCtx->dr[7] & X86_DR7_ENABLED_MASK) 4513 4514 { 4514 STAM_COUNTER_INC(&pVCpu->hm.s.StatDRxI OCheck);4515 STAM_COUNTER_INC(&pVCpu->hm.s.StatDRxIoCheck); 4515 4516 for (unsigned i = 0; i < 4; i++) 4516 4517 {
Note:
See TracChangeset
for help on using the changeset viewer.