Changeset 87765 in vbox
- Timestamp:
- Feb 16, 2021 12:18:57 AM (4 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
-
include/VBox/vmm/tm.h (modified) (1 diff)
-
src/VBox/VMM/VMMR3/CPUM.cpp (modified) (2 diffs)
-
src/VBox/VMM/VMMR3/GIMHv.cpp (modified) (1 diff)
-
src/VBox/VMM/VMMR3/PDMAsyncCompletionFile.cpp (modified) (1 diff)
-
src/VBox/VMM/VMMR3/PDMBlkCache.cpp (modified) (1 diff)
-
src/VBox/VMM/VMMR3/PDMQueue.cpp (modified) (1 diff)
-
src/VBox/VMM/VMMR3/TM.cpp (modified) (2 diffs)
-
src/VBox/VMM/VMMR3/VMM.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/tm.h
r87764 r87765 278 278 VMM_INT_DECL(int) TMR3TimerCreateUsb(PVM pVM, PPDMUSBINS pUsbIns, TMCLOCK enmClock, PFNTMTIMERUSB pfnCallback, void *pvUser, uint32_t fFlags, const char *pszDesc, PPTMTIMERR3 ppTimer); 279 279 VMM_INT_DECL(int) TMR3TimerCreateDriver(PVM pVM, PPDMDRVINS pDrvIns, TMCLOCK enmClock, PFNTMTIMERDRV pfnCallback, void *pvUser, uint32_t fFlags, const char *pszDesc, PPTMTIMERR3 ppTimer); 280 VMMR3DECL(int) TMR3TimerCreateInternal(PVM pVM, TMCLOCK enmClock, PFNTMTIMERINT pfnCallback, void *pvUser, const char *pszDesc, PPTMTIMERR3 ppTimer); 280 VMMR3DECL(int) TMR3TimerCreate(PVM pVM, TMCLOCK enmClock, PFNTMTIMERINT pfnCallback, void *pvUser, uint32_t fFlags, 281 const char *pszDesc, PPTMTIMERR3 ppTimer); 281 282 VMMR3DECL(int) TMR3TimerDestroy(PTMTIMER pTimer); 282 283 VMM_INT_DECL(int) TMR3TimerDestroyDevice(PVM pVM, PPDMDEVINS pDevIns); -
trunk/src/VBox/VMM/VMMR3/CPUM.cpp
r87523 r87765 4503 4503 4504 4504 /* Create VMX-preemption timer for nested guests if required. */ 4505 /** @todo r=bird: this should be one in CPUMR3Init, not here. */ 4505 4506 if (pVM->cpum.s.GuestFeatures.fVmx) 4506 4507 { … … 4511 4512 MMR3HyperInitFinalize has already completed at this point. */ 4512 4513 char *pszTimerName = MMR3HeapAPrintf(pVM, MM_TAG_CPUM_CTX, "Nested Guest VMX-preempt. timer %u", idCpu); 4513 int rc = TMR3TimerCreate Internal(pVM, TMCLOCK_VIRTUAL_SYNC, cpumR3VmxPreemptTimerCallback, pVCpu,4514 pszTimerName, &pVCpu->cpum.s.pNestedVmxPreemptTimerR3);4514 int rc = TMR3TimerCreate(pVM, TMCLOCK_VIRTUAL_SYNC, cpumR3VmxPreemptTimerCallback, pVCpu, 4515 TMTIMER_FLAGS_RING0, pszTimerName, &pVCpu->cpum.s.pNestedVmxPreemptTimerR3); 4515 4516 AssertLogRelRCReturn(rc, rc); 4516 4517 pVCpu->cpum.s.pNestedVmxPreemptTimerR0 = TMTimerR0Ptr(pVCpu->cpum.s.pNestedVmxPreemptTimerR3); -
trunk/src/VBox/VMM/VMMR3/GIMHv.cpp
r82968 r87765 509 509 RTStrPrintf(&pHvStimer->szTimerDesc[0], sizeof(pHvStimer->szTimerDesc), "Hyper-V[%u] Timer%u", pVCpu->idCpu, 510 510 idxStimer); 511 rc = TMR3TimerCreate Internal(pVM, TMCLOCK_VIRTUAL_SYNC, gimR3HvTimerCallback, pHvStimer /* pvUser */,512 pHvStimer->szTimerDesc, &pHvStimer->pTimerR3);511 rc = TMR3TimerCreate(pVM, TMCLOCK_VIRTUAL_SYNC, gimR3HvTimerCallback, pHvStimer /* pvUser */, 512 TMTIMER_FLAGS_RING0, pHvStimer->szTimerDesc, &pHvStimer->pTimerR3); 513 513 AssertLogRelRCReturn(rc, rc); 514 514 pHvStimer->pTimerR0 = TMTimerR0Ptr(pHvStimer->pTimerR3); -
trunk/src/VBox/VMM/VMMR3/PDMAsyncCompletionFile.cpp
r82968 r87765 866 866 } 867 867 868 #ifdef PDM_ASYNC_COMPLETION_FILE_WITH_DELAY 869 rc = TMR3TimerCreateInternal(pEpClassFile->Core.pVM, TMCLOCK_REAL, pdmacR3TimerCallback, pEpClassFile, "AC Delay", &pEpClassFile->pTimer); 868 # ifdef PDM_ASYNC_COMPLETION_FILE_WITH_DELAY 869 rc = TMR3TimerCreate(pEpClassFile->Core.pVM, TMCLOCK_REAL, pdmacR3TimerCallback, pEpClassFile, 870 TMTIMER_FLAGS_NO_RING0, "AC Delay", &pEpClassFile->pTimer); 870 871 AssertRC(rc); 871 872 pEpClassFile->cMilliesNext = UINT64_MAX; 872 # endif873 # endif 873 874 #endif 874 875 -
trunk/src/VBox/VMM/VMMR3/PDMBlkCache.cpp
r86527 r87765 1157 1157 /* Create the commit timer */ 1158 1158 if (pBlkCacheGlobal->u32CommitTimeoutMs > 0) 1159 rc = TMR3TimerCreateInternal(pVM, TMCLOCK_REAL, 1160 pdmBlkCacheCommitTimerCallback, 1161 pBlkCacheGlobal, 1162 "BlkCache-Commit", 1163 &pBlkCacheGlobal->pTimerCommit); 1159 rc = TMR3TimerCreate(pVM, TMCLOCK_REAL, pdmBlkCacheCommitTimerCallback, pBlkCacheGlobal, 1160 TMTIMER_FLAGS_NO_RING0, "BlkCache-Commit", &pBlkCacheGlobal->pTimerCommit); 1164 1161 1165 1162 if (RT_SUCCESS(rc)) -
trunk/src/VBox/VMM/VMMR3/PDMQueue.cpp
r82968 r87765 113 113 if (cMilliesInterval) 114 114 { 115 rc = TMR3TimerCreate Internal(pVM, TMCLOCK_REAL, pdmR3QueueTimer, pQueue, "Queue timer", &pQueue->pTimer);115 rc = TMR3TimerCreate(pVM, TMCLOCK_REAL, pdmR3QueueTimer, pQueue, TMTIMER_FLAGS_NO_RING0, "Queue timer", &pQueue->pTimer); 116 116 if (RT_SUCCESS(rc)) 117 117 { -
trunk/src/VBox/VMM/VMMR3/TM.cpp
r87763 r87765 1101 1101 */ 1102 1102 PTMTIMER pTimer; 1103 rc = TMR3TimerCreate Internal(pVM, TMCLOCK_REAL, tmR3CpuLoadTimer, NULL, "CPU Load Timer", &pTimer);1103 rc = TMR3TimerCreate(pVM, TMCLOCK_REAL, tmR3CpuLoadTimer, NULL, TMTIMER_FLAGS_NO_RING0, "CPU Load Timer", &pTimer); 1104 1104 if (RT_SUCCESS(rc)) 1105 1105 rc = TMTimerSetMillies(pTimer, 1000); … … 1721 1721 * @param pfnCallback Callback function. 1722 1722 * @param pvUser User argument to be passed to the callback. 1723 * @param fFlags Timer creation flags, see grp_tm_timer_flags. 1723 1724 * @param pszDesc Pointer to description string which must stay around 1724 1725 * until the timer is fully destroyed (i.e. a bit after TMTimerDestroy()). 1725 1726 * @param ppTimer Where to store the timer on success. 1726 1727 */ 1727 VMMR3DECL(int) TMR3TimerCreateInternal(PVM pVM, TMCLOCK enmClock, 1728 PFNTMTIMERINT pfnCallback, void *pvUser, const char *pszDesc, PPTMTIMERR3 ppTimer) 1729 { 1728 VMMR3DECL(int) TMR3TimerCreate(PVM pVM, TMCLOCK enmClock, PFNTMTIMERINT pfnCallback, void *pvUser, 1729 uint32_t fFlags, const char *pszDesc, PPTMTIMERR3 ppTimer) 1730 { 1731 AssertReturn(fFlags & (TMTIMER_FLAGS_RING0 | TMTIMER_FLAGS_NO_RING0), VERR_INVALID_FLAGS); 1732 AssertReturn((fFlags & (TMTIMER_FLAGS_RING0 | TMTIMER_FLAGS_NO_RING0)) != (TMTIMER_FLAGS_RING0 | TMTIMER_FLAGS_NO_RING0), 1733 VERR_INVALID_FLAGS); 1734 1730 1735 /* 1731 1736 * Allocate and init stuff. 1732 1737 */ 1733 1738 PTMTIMER pTimer; 1734 int rc = tmr3TimerCreate(pVM, enmClock, 0 /*fFlags*/, pszDesc, &pTimer);1739 int rc = tmr3TimerCreate(pVM, enmClock, fFlags, pszDesc, &pTimer); 1735 1740 if (RT_SUCCESS(rc)) 1736 1741 { -
trunk/src/VBox/VMM/VMMR3/VMM.cpp
r82968 r87765 660 660 * Create the EMT yield timer. 661 661 */ 662 rc = TMR3TimerCreateInternal(pVM, TMCLOCK_REAL, vmmR3YieldEMT, NULL, "EMT Yielder", &pVM->vmm.s.pYieldTimer); 662 rc = TMR3TimerCreate(pVM, TMCLOCK_REAL, vmmR3YieldEMT, NULL, TMTIMER_FLAGS_NO_RING0, 663 "EMT Yielder", &pVM->vmm.s.pYieldTimer); 663 664 AssertRCReturn(rc, rc); 664 665
Note:
See TracChangeset
for help on using the changeset viewer.

