Lines Matching defs:pVM

98          * During early init there is no pVM, so make a special path
101 if (!pUVM->pVM)
124 Log(("vmR3EmulationThread: Req rc=%Rrc, VM state %s -> %s\n", rc, VMR3GetStateName(enmBefore), pUVM->pVM ? VMR3GetStateName(pUVM->pVM->enmVMState) : "CREATING"));
132 Log(("vmR3EmulationThread: Req (cpu=%u) rc=%Rrc, VM state %s -> %s\n", pUVCpu->idCpu, rc, VMR3GetStateName(enmBefore), pUVM->pVM ? VMR3GetStateName(pUVM->pVM->enmVMState) : "CREATING"));
155 PVM pVM = pUVM->pVM;
156 enmBefore = pVM->enmVMState;
163 if (VM_FF_IS_PENDING(pVM, VM_FF_EMT_RENDEZVOUS))
165 rc = VMMR3EmtRendezvousFF(pVM, &pVM->aCpus[idCpu]);
166 Log(("vmR3EmulationThread: Rendezvous rc=%Rrc, VM state %s -> %s\n", rc, VMR3GetStateName(enmBefore), VMR3GetStateName(pVM->enmVMState)));
174 Log(("vmR3EmulationThread: Req rc=%Rrc, VM state %s -> %s\n", rc, VMR3GetStateName(enmBefore), VMR3GetStateName(pVM->enmVMState)));
182 Log(("vmR3EmulationThread: Req (cpu=%u) rc=%Rrc, VM state %s -> %s\n", pUVCpu->idCpu, rc, VMR3GetStateName(enmBefore), VMR3GetStateName(pVM->enmVMState)));
184 else if (VM_FF_IS_SET(pVM, VM_FF_DBGF))
189 rc = DBGFR3VMMForcedAction(pVM);
190 Log(("vmR3EmulationThread: Dbg rc=%Rrc, VM state %s -> %s\n", rc, VMR3GetStateName(enmBefore), VMR3GetStateName(pVM->enmVMState)));
192 else if (VM_FF_TEST_AND_CLEAR(pVM, VM_FF_RESET))
197 rc = VMR3Reset(pVM->pUVM);
198 VM_FF_CLEAR(pVM, VM_FF_RESET);
199 Log(("vmR3EmulationThread: Reset rc=%Rrc, VM state %s -> %s\n", rc, VMR3GetStateName(enmBefore), VMR3GetStateName(pVM->enmVMState)));
228 && pUVM->pVM)
230 PVM pVM = pUVM->pVM;
231 PVMCPU pVCpu = &pVM->aCpus[idCpu];
232 if ( pVM->enmVMState == VMSTATE_RUNNING
235 rc = EMR3ExecuteVM(pVM, pVCpu);
236 Log(("vmR3EmulationThread: EMR3ExecuteVM() -> rc=%Rrc, enmVMState=%d\n", rc, pVM->enmVMState));
238 vmR3SetGuruMeditation(pVM);
249 ThreadSelf, pUVM, rc, enmBefore, pUVM->pVM ? pUVM->pVM->enmVMState : VMSTATE_TERMINATED));
251 && pUVM->pVM)
253 PVM pVM = pUVM->pVM;
254 vmR3SetTerminated(pVM);
255 pUVM->pVM = NULL;
259 int rc2 = SUPR3CallVMMR0Ex(pVM->pVMR0, 0 /*idCpu*/, VMMR0_DO_GVMM_DESTROY_VM, 0, NULL);
309 if (pUVCpu->pVM)
310 VM_FF_SET(pUVCpu->pVM, VM_FF_CHECK_VM_STATE);
323 PVM pVM = pUVCpu->pVM;
337 TMR3TimerQueuesDo(pVM);
340 if ( VM_FF_IS_PENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK)
344 TMTimerPollGIP(pVM, pVCpu, &u64NanoTS);
345 if ( VM_FF_IS_PENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK)
360 VMMR3YieldStop(pVM);
407 * @param pVM Pointer to the VM.
434 PCFGMNODE pCfg = CFGMR3GetChild(CFGMR3GetRoot(pUVM->pVM), "/VMM/HaltedMethod1");
481 PVM pVM = pUVCpu->pVM;
491 uint32_t u32CatchUpPct = TMVirtualSyncGetCatchUpPct(pVM);
496 fSpinning = TMVirtualSyncGetLag(pVM) >= pUVM->vm.s.Halt.Method12.u32StopSpinningCfg;
499 uint64_t u64Lag = TMVirtualSyncGetLag(pVM);
513 fSpinning = TMVirtualSyncGetLag(pVM) >= pUVM->vm.s.Halt.Method12.u32StartSpinningCfg;
536 TMR3TimerQueuesDo(pVM);
539 if ( VM_FF_IS_PENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK)
547 TMTimerPollGIP(pVM, pVCpu, &u64NanoTS);
548 if ( VM_FF_IS_PENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK)
564 VMMR3YieldStop(pVM);
614 //if (fSpinning) RTLogRelPrintf("spun for %RU64 ns %u loops; lag=%RU64 pct=%d\n", RTTimeNanoTS() - u64Now, cLoops, TMVirtualSyncGetLag(pVM), u32CatchUpPct);
646 PCFGMNODE pCfg = CFGMR3GetChild(CFGMR3GetRoot(pUVM->pVM), "/VMM/HaltedGlobal1");
667 PVM pVM = pUVCpu->pVM;
668 Assert(VMMGetCpu(pVM) == pVCpu);
685 TMR3TimerQueuesDo(pVM);
688 if ( VM_FF_IS_PENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK)
697 uint64_t u64GipTime = TMTimerPollGIP(pVM, pVCpu, &u64Delta);
698 if ( VM_FF_IS_PENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK)
707 VMMR3YieldStop(pVM);
708 if ( VM_FF_IS_PENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK)
714 rc = SUPR3CallVMMR0Ex(pVM->pVMR0, pVCpu->idCpu, VMMR0_DO_GVMM_SCHED_HALT, u64GipTime, NULL);
744 rc = SUPR3CallVMMR0Ex(pVM->pVMR0, pVCpu->idCpu, VMMR0_DO_GVMM_SCHED_POLL, false /* don't yield */, NULL);
749 //RTLogPrintf("*** %u loops %'llu; lag=%RU64\n", cLoops, u64NowLog - u64Start, TMVirtualSyncGetLag(pVM));
766 PVM pVM = pUVCpu->pUVM->pVM;
767 PVMCPU pVCpu = VMMGetCpu(pVM);
776 if ( VM_FF_IS_PENDING(pVM, VM_FF_EXTERNAL_SUSPENDED_MASK)
784 rc = SUPR3CallVMMR0Ex(pVM->pVMR0, pVCpu->idCpu, VMMR0_DO_GVMM_SCHED_HALT, RTTimeNanoTS() + 1000000000 /* +1s */, NULL);
809 int rc = SUPR3CallVMMR0Ex(pUVCpu->pVM->pVMR0, pUVCpu->idCpu, VMMR0_DO_GVMM_SCHED_WAKE_UP, 0, NULL);
821 int rc = SUPR3CallVMMR0Ex(pUVCpu->pVM->pVMR0, pUVCpu->idCpu, VMMR0_DO_GVMM_SCHED_POKE, 0, NULL);
829 REMR3NotifyFF(pUVCpu->pVM);
859 if ( pUVCpu->pVM
860 && ( VM_FF_IS_PENDING(pUVCpu->pVM, VM_FF_EXTERNAL_SUSPENDED_MASK)
861 || VMCPU_FF_IS_PENDING(VMMGetCpu(pUVCpu->pVM), VMCPU_FF_EXTERNAL_SUSPENDED_MASK)
914 PVM pVM = pUVCpu->pVM;
922 if ( VM_FF_IS_PENDING(pVM, VM_FF_EXTERNAL_SUSPENDED_MASK)
962 REMR3NotifyFF(pUVCpu->pVM);
1044 * @param pVM Pointer to the VM.
1051 VMMR3_INT_DECL(int) VMR3WaitHalted(PVM pVM, PVMCPU pVCpu, bool fIgnoreInterrupts)
1061 if ( VM_FF_IS_PENDING(pVM, VM_FF_EXTERNAL_HALTED_MASK)
1064 LogFlow(("VMR3WaitHalted: returns VINF_SUCCESS (FF %#x FFCPU %#x)\n", pVM->fGlobalForcedActions, pVCpu->fLocalForcedActions));
1073 VMMR3YieldSuspend(pVM);
1113 VMMR3YieldResume(pVM);
1115 LogFlow(("VMR3WaitHalted: returns %Rrc (FF %#x)\n", rc, pVM->fGlobalForcedActions));
1138 PVM pVM = pUVCpu->pVM;
1141 if ( pVM
1142 && ( VM_FF_IS_PENDING(pVM, VM_FF_EXTERNAL_SUSPENDED_MASK)
1147 LogFlow(("VMR3Wait: returns VINF_SUCCESS (FF %#x)\n", pVM->fGlobalForcedActions));
1157 LogFlow(("VMR3WaitU: returns %Rrc (FF %#x)\n", rc, pUVM->pVM ? pUVM->pVM->fGlobalForcedActions : 0));
1187 VM_FF_SET(pUVM->pVM, VM_FF_REQUEST); /* this will have to do for now. */
1196 * @param pVM Pointer to the VM.
1200 static DECLCALLBACK(VBOXSTRICTRC) vmR3SetHaltMethodCallback(PVM pVM, PVMCPU pVCpu, void *pvUser)
1202 PUVM pUVM = pVM->pUVM;
1258 PVM pVM = pUVM->pVM; Assert(pVM);
1259 VM_ASSERT_EMT(pVM);
1268 int rc = CFGMR3QueryU32(CFGMR3GetChild(CFGMR3GetRoot(pVM), "VM"), "HaltMethod", &u32);
1273 return VMSetError(pVM, VERR_INVALID_PARAMETER, RT_SRC_POS, N_("Invalid VM/HaltMethod value %d"), enmHaltMethod);
1276 return VMSetError(pVM, rc, RT_SRC_POS, N_("Failed to Query VM/HaltMethod as uint32_t"));
1296 return VMMR3EmtRendezvous(pVM, VMMEMTRENDEZVOUS_FLAGS_TYPE_ONCE, vmR3SetHaltMethodCallback, (void *)(uintptr_t)i);
1310 * @param pVM The VM handle.
1313 VMMR3DECL(int) VMR3WaitForDeviceReady(PVM pVM, VMCPUID idCpu)
1318 VM_ASSERT_VALID_EXT_RETURN(pVM, VERR_INVALID_VM_HANDLE);
1319 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_CPU_ID);
1320 PVMCPU pVCpu = &pVM->aCpus[idCpu];
1326 int rc = VMR3WaitHalted(pVM, pVCpu, false /*fIgnoreInterrupts*/);
1337 * @param pVM The VM handle.
1340 VMMR3DECL(int) VMR3NotifyCpuDeviceReady(PVM pVM, VMCPUID idCpu)
1345 VM_ASSERT_VALID_EXT_RETURN(pVM, VERR_INVALID_VM_HANDLE);
1346 AssertReturn(idCpu < pVM->cCpus, VERR_INVALID_CPU_ID);
1347 PVMCPU pVCpu = &pVM->aCpus[idCpu];