Changeset 33172 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Oct 15, 2010 11:33:49 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 66708
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMEmt.cpp
r33170 r33172 327 327 TMR3TimerQueuesDo(pVM); 328 328 uint64_t const cNsElapsedTimers = RTTimeNanoTS() - u64StartTimers; 329 STAM_REL_PROFILE_ADD_PERIOD(&pUVCpu->vm.s.StatHalt Yield, cNsElapsedTimers);329 STAM_REL_PROFILE_ADD_PERIOD(&pUVCpu->vm.s.StatHaltTimers, cNsElapsedTimers); 330 330 if ( VM_FF_ISPENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK) 331 331 || VMCPU_FF_ISPENDING(pVCpu, fMask)) … … 526 526 TMR3TimerQueuesDo(pVM); 527 527 uint64_t const cNsElapsedTimers = RTTimeNanoTS() - u64StartTimers; 528 STAM_REL_PROFILE_ADD_PERIOD(&pUVCpu->vm.s.StatHalt Yield, cNsElapsedTimers);528 STAM_REL_PROFILE_ADD_PERIOD(&pUVCpu->vm.s.StatHaltTimers, cNsElapsedTimers); 529 529 if ( VM_FF_ISPENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK) 530 530 || VMCPU_FF_ISPENDING(pVCpu, fMask)) … … 620 620 * The defaults. 621 621 */ 622 pUVM->vm.s.Halt.Global1.cNsSpinBlockThresholdCfg = 50000;623 622 uint32_t cNsResolution = SUPSemEventMultiGetResolution(pUVM->vm.s.pSession); 624 if (cNsResolution < 5*RT_NS_100US) 625 { 626 cNsResolution = RT_MAX(cNsResolution, 20000); 627 pUVM->vm.s.Halt.Global1.cNsSpinBlockThresholdCfg = cNsResolution / 2; 628 } 623 if (cNsResolution > 5*RT_NS_100US) 624 pUVM->vm.s.Halt.Global1.cNsSpinBlockThresholdCfg = 50000; 625 else if (cNsResolution > RT_NS_100US) 626 pUVM->vm.s.Halt.Global1.cNsSpinBlockThresholdCfg = cNsResolution / 4; 627 else 628 pUVM->vm.s.Halt.Global1.cNsSpinBlockThresholdCfg = 2000; 629 629 630 630 /* … … 674 674 TMR3TimerQueuesDo(pVM); 675 675 uint64_t const cNsElapsedTimers = RTTimeNanoTS() - u64StartTimers; 676 STAM_REL_PROFILE_ADD_PERIOD(&pUVCpu->vm.s.StatHalt Yield, cNsElapsedTimers);676 STAM_REL_PROFILE_ADD_PERIOD(&pUVCpu->vm.s.StatHaltTimers, cNsElapsedTimers); 677 677 if ( VM_FF_ISPENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK) 678 678 || VMCPU_FF_ISPENDING(pVCpu, fMask)) -
trunk/src/VBox/VMM/VMMR0/GVMMR0.cpp
r33170 r33172 362 362 pGVMM->nsEarlyWakeUp2 = 50000 /* ns (0.050 ms) */; 363 363 } 364 else if (cNsResolution > RT_NS_100US) 365 { 366 pGVMM->nsMinSleepAlone = cNsResolution / 2; 367 pGVMM->nsMinSleepCompany = cNsResolution / 4; 368 pGVMM->nsEarlyWakeUp1 = 0; 369 pGVMM->nsEarlyWakeUp2 = 0; 370 } 364 371 else 365 372 { 366 cNsResolution = RT_MIN(cNsResolution, 10000); 367 pGVMM->nsMinSleepAlone = cNsResolution - cNsResolution / 3; 368 pGVMM->nsMinSleepCompany = cNsResolution - cNsResolution / 3; 373 pGVMM->nsMinSleepAlone = 2000; 374 pGVMM->nsMinSleepCompany = 2000; 369 375 pGVMM->nsEarlyWakeUp1 = 0; 370 376 pGVMM->nsEarlyWakeUp2 = 0;
Note:
See TracChangeset
for help on using the changeset viewer.