Changeset 87822 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Feb 20, 2021 10:34:06 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 142883
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/TMAll.cpp
r87814 r87822 342 342 DECLINLINE(void) tmScheduleNotify(PVMCC pVM) 343 343 { 344 PVMCPUCC pVCpuDst = VMCC_GET_CPU(pVM, pVM->tm.s.idTimerCpu); 344 VMCPUID idCpu = pVM->tm.s.idTimerCpu; 345 AssertReturnVoid(idCpu < pVM->cCpus); 346 PVMCPUCC pVCpuDst = VMCC_GET_CPU(pVM, idCpu); 347 345 348 if (!VMCPU_FF_IS_SET(pVCpuDst, VMCPU_FF_TIMER)) 346 349 { … … 360 363 DECLINLINE(void) tmSchedule(PVMCC pVM, PTMTIMERQUEUECC pQueueCC, PTMTIMERQUEUE pQueue, PTMTIMER pTimer) 361 364 { 362 if (VM_IS_EMT(pVM)) /** @todo drop EMT requirement here. */ 363 { 364 int rc = PDMCritSectTryEnter(&pQueue->TimerLock); 365 if (RT_SUCCESS_NP(rc)) 366 { 367 STAM_PROFILE_START(&pVM->tm.s.CTX_SUFF_Z(StatScheduleOne), a); 368 Log3(("tmSchedule: tmTimerQueueSchedule\n")); 369 tmTimerQueueSchedule(pVM, pQueueCC, pQueue); 365 int rc = PDMCritSectTryEnter(&pQueue->TimerLock); 366 if (RT_SUCCESS_NP(rc)) 367 { 368 STAM_PROFILE_START(&pVM->tm.s.CTX_SUFF_Z(StatScheduleOne), a); 369 Log3(("tmSchedule: tmTimerQueueSchedule\n")); 370 tmTimerQueueSchedule(pVM, pQueueCC, pQueue); 370 371 #ifdef VBOX_STRICT 371 372 tmTimerQueuesSanityChecks(pVM, "tmSchedule"); 372 373 #endif 373 STAM_PROFILE_STOP(&pVM->tm.s.CTX_SUFF_Z(StatScheduleOne), a); 374 PDMCritSectLeave(&pQueue->TimerLock); 375 return; 376 } 374 STAM_PROFILE_STOP(&pVM->tm.s.CTX_SUFF_Z(StatScheduleOne), a); 375 PDMCritSectLeave(&pQueue->TimerLock); 376 return; 377 377 } 378 378 … … 864 864 } 865 865 866 866 867 /** 867 868 * Common worker for TMTimerPollGIP and TMTimerPoll. … … 882 883 DECL_FORCE_INLINE(uint64_t) tmTimerPollInternal(PVMCC pVM, PVMCPUCC pVCpu, uint64_t *pu64Delta) 883 884 { 884 PVMCPU pVCpuDst = VMCC_GET_CPU(pVM, pVM->tm.s.idTimerCpu); 885 const uint64_t u64Now = TMVirtualGetNoCheck(pVM); 885 VMCPUID idCpu = pVM->tm.s.idTimerCpu; 886 AssertReturn(idCpu < pVM->cCpus, 0); 887 PVMCPUCC pVCpuDst = VMCC_GET_CPU(pVM, idCpu); 888 889 const uint64_t u64Now = TMVirtualGetNoCheck(pVM); 886 890 STAM_COUNTER_INC(&pVM->tm.s.StatPoll); 887 891
Note:
See TracChangeset
for help on using the changeset viewer.