VirtualBox

Changeset 99920 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
May 22, 2023 8:52:26 PM (21 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
157563
Message:

VMM/EM: Time slice cleanups. Scm fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/EM.cpp

    r99899 r99920  
    219219        pVCpu->em.s.enmState            = idCpu == 0 ? EMSTATE_NONE : EMSTATE_WAIT_SIPI;
    220220        pVCpu->em.s.enmPrevState        = EMSTATE_NONE;
    221         pVCpu->em.s.u64TimeSliceStart   = 0; /* paranoia */
     221        pVCpu->em.s.msTimeSliceStart    = 0; /* paranoia */
    222222        pVCpu->em.s.idxContinueExitRec  = UINT16_MAX;
    223223
     
    20332033    {
    20342034        uint64_t const msTimeNow = RTTimeMilliTS();
    2035         if (pVCpu->em.s.u64TimeSliceStart + EM_TIME_SLICE < msTimeNow)
     2035        if (pVCpu->em.s.msTimeSliceStart + EM_TIME_SLICE < msTimeNow)
    20362036        {
    20372037            /* New time slice. */
    2038             pVCpu->em.s.u64TimeSliceStart     = msTimeNow;
    2039             pVCpu->em.s.u64TimeSliceStartExec = cMsKernelTime + cMsUserTime;
    2040             pVCpu->em.s.u64TimeSliceExec      = 0;
    2041         }
    2042         pVCpu->em.s.u64TimeSliceExec = cMsKernelTime + cMsUserTime - pVCpu->em.s.u64TimeSliceStartExec;
    2043 
    2044         bool const fRet = pVCpu->em.s.u64TimeSliceExec < (EM_TIME_SLICE * pVM->uCpuExecutionCap) / 100;
    2045         Log2(("emR3IsExecutionAllowed: start=%RX64 startexec=%RX64 exec=%RX64 (cap=%x)\n", pVCpu->em.s.u64TimeSliceStart,
    2046               pVCpu->em.s.u64TimeSliceStartExec, pVCpu->em.s.u64TimeSliceExec, (EM_TIME_SLICE * pVM->uCpuExecutionCap) / 100));
     2038            pVCpu->em.s.msTimeSliceStart      = msTimeNow;
     2039            pVCpu->em.s.cMsTimeSliceStartExec = cMsKernelTime + cMsUserTime;
     2040            pVCpu->em.s.cMsTimeSliceExec      = 0;
     2041        }
     2042        pVCpu->em.s.cMsTimeSliceExec = cMsKernelTime + cMsUserTime - pVCpu->em.s.cMsTimeSliceStartExec;
     2043
     2044        bool const fRet = pVCpu->em.s.cMsTimeSliceExec < (EM_TIME_SLICE * pVM->uCpuExecutionCap) / 100;
     2045        Log2(("emR3IsExecutionAllowed: start=%RX64 startexec=%RX64 exec=%RX64 (cap=%x)\n", pVCpu->em.s.msTimeSliceStart,
     2046              pVCpu->em.s.cMsTimeSliceStartExec, pVCpu->em.s.cMsTimeSliceExec, (EM_TIME_SLICE * pVM->uCpuExecutionCap) / 100));
    20472047        return fRet;
    20482048    }
Note: See TracChangeset for help on using the changeset viewer.

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