VirtualBox

Changeset 33172 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Oct 15, 2010 11:33:49 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
66708
Message:

VMEmt,GVMM: Some more tuning...

Location:
trunk/src/VBox/VMM
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMEmt.cpp

    r33170 r33172  
    327327        TMR3TimerQueuesDo(pVM);
    328328        uint64_t const cNsElapsedTimers = RTTimeNanoTS() - u64StartTimers;
    329         STAM_REL_PROFILE_ADD_PERIOD(&pUVCpu->vm.s.StatHaltYield, cNsElapsedTimers);
     329        STAM_REL_PROFILE_ADD_PERIOD(&pUVCpu->vm.s.StatHaltTimers, cNsElapsedTimers);
    330330        if (    VM_FF_ISPENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK)
    331331            ||  VMCPU_FF_ISPENDING(pVCpu, fMask))
     
    526526        TMR3TimerQueuesDo(pVM);
    527527        uint64_t const cNsElapsedTimers = RTTimeNanoTS() - u64StartTimers;
    528         STAM_REL_PROFILE_ADD_PERIOD(&pUVCpu->vm.s.StatHaltYield, cNsElapsedTimers);
     528        STAM_REL_PROFILE_ADD_PERIOD(&pUVCpu->vm.s.StatHaltTimers, cNsElapsedTimers);
    529529        if (    VM_FF_ISPENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK)
    530530            ||  VMCPU_FF_ISPENDING(pVCpu, fMask))
     
    620620     * The defaults.
    621621     */
    622     pUVM->vm.s.Halt.Global1.cNsSpinBlockThresholdCfg = 50000;
    623622    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;
    629629
    630630    /*
     
    674674        TMR3TimerQueuesDo(pVM);
    675675        uint64_t const cNsElapsedTimers = RTTimeNanoTS() - u64StartTimers;
    676         STAM_REL_PROFILE_ADD_PERIOD(&pUVCpu->vm.s.StatHaltYield, cNsElapsedTimers);
     676        STAM_REL_PROFILE_ADD_PERIOD(&pUVCpu->vm.s.StatHaltTimers, cNsElapsedTimers);
    677677        if (    VM_FF_ISPENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK)
    678678            ||  VMCPU_FF_ISPENDING(pVCpu, fMask))
  • trunk/src/VBox/VMM/VMMR0/GVMMR0.cpp

    r33170 r33172  
    362362                pGVMM->nsEarlyWakeUp2    =  50000 /* ns (0.050 ms) */;
    363363            }
     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            }
    364371            else
    365372            {
    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;
    369375                pGVMM->nsEarlyWakeUp1    = 0;
    370376                pGVMM->nsEarlyWakeUp2    = 0;
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette