Lines Matching refs:gvmm

53 #include <VBox/vmm/gvmm.h>
823 rc = RTR0MemObjAllocLow(&pGVM->gvmm.s.VMMemObj, cPages << PAGE_SHIFT, false /* fExecutable */);
826 PVM pVM = (PVM)RTR0MemObjAddress(pGVM->gvmm.s.VMMemObj); AssertPtr(pVM);
840 rc = RTR0MemObjAllocPage(&pGVM->gvmm.s.VMPagesMemObj, cPages * sizeof(SUPPAGE), false /* fExecutable */);
843 PSUPPAGE paPages = (PSUPPAGE)RTR0MemObjAddress(pGVM->gvmm.s.VMPagesMemObj); AssertPtr(paPages);
847 paPages[iPage].Phys = RTR0MemObjGetPagePhysAddr(pGVM->gvmm.s.VMMemObj, iPage);
854 rc = RTR0MemObjMapUser(&pGVM->gvmm.s.VMMapObj, pGVM->gvmm.s.VMMemObj, (RTR3PTR)-1, 0,
858 pVM->pVMR3 = RTR0MemObjAddressR3(pGVM->gvmm.s.VMMapObj);
870 rc = RTR0MemObjMapUser(&pGVM->gvmm.s.VMPagesMapObj, pGVM->gvmm.s.VMPagesMemObj, (RTR3PTR)-1,
875 pVM->paVMPagesR3 = RTR0MemObjAddressR3(pGVM->gvmm.s.VMPagesMapObj);
905 RTR0MemObjFree(pGVM->gvmm.s.VMMapObj, false /* fFreeMappings */);
906 pGVM->gvmm.s.VMMapObj = NIL_RTR0MEMOBJ;
908 RTR0MemObjFree(pGVM->gvmm.s.VMPagesMemObj, false /* fFreeMappings */);
909 pGVM->gvmm.s.VMPagesMemObj = NIL_RTR0MEMOBJ;
911 RTR0MemObjFree(pGVM->gvmm.s.VMMemObj, false /* fFreeMappings */);
912 pGVM->gvmm.s.VMMemObj = NIL_RTR0MEMOBJ;
952 AssertCompile(RT_SIZEOFMEMB(GVM,gvmm.s) <= RT_SIZEOFMEMB(GVM,gvmm.padding));
953 AssertCompile(RT_SIZEOFMEMB(GVMCPU,gvmm.s) <= RT_SIZEOFMEMB(GVMCPU,gvmm.padding));
954 pGVM->gvmm.s.VMMemObj = NIL_RTR0MEMOBJ;
955 pGVM->gvmm.s.VMMapObj = NIL_RTR0MEMOBJ;
956 pGVM->gvmm.s.VMPagesMemObj = NIL_RTR0MEMOBJ;
957 pGVM->gvmm.s.VMPagesMapObj = NIL_RTR0MEMOBJ;
958 pGVM->gvmm.s.fDoneVMMR0Init = false;
959 pGVM->gvmm.s.fDoneVMMR0Term = false;
963 pGVM->aCpus[i].gvmm.s.HaltEventMulti = NIL_RTSEMEVENTMULTI;
987 if ( !pGVM->gvmm.s.fDoneVMMR0Init
988 && pGVM->aCpus[0].gvmm.s.HaltEventMulti == NIL_RTSEMEVENTMULTI)
992 rc = RTSemEventMultiCreate(&pGVM->aCpus[i].gvmm.s.HaltEventMulti);
995 pGVM->aCpus[i].gvmm.s.HaltEventMulti = NIL_RTSEMEVENTMULTI;
1025 pGVM->gvmm.s.fDoneVMMR0Init = true;
1050 if (pGVM->gvmm.s.fDoneVMMR0Term)
1052 pGVM->gvmm.s.fDoneVMMR0Term = true;
1149 if ( pGVM->gvmm.s.fDoneVMMR0Init
1150 && !pGVM->gvmm.s.fDoneVMMR0Term)
1152 if ( pGVM->gvmm.s.VMMemObj != NIL_RTR0MEMOBJ
1153 && RTR0MemObjAddress(pGVM->gvmm.s.VMMemObj) == pGVM->pVM)
1159 AssertMsgFailed(("gvmmR0CleanupVM: VMMemObj=%p pVM=%p\n", pGVM->gvmm.s.VMMemObj, pGVM->pVM));
1263 if (pGVM->gvmm.s.VMPagesMapObj != NIL_RTR0MEMOBJ)
1265 rc = RTR0MemObjFree(pGVM->gvmm.s.VMPagesMapObj, false /* fFreeMappings */); AssertRC(rc);
1266 pGVM->gvmm.s.VMPagesMapObj = NIL_RTR0MEMOBJ;
1269 if (pGVM->gvmm.s.VMMapObj != NIL_RTR0MEMOBJ)
1271 rc = RTR0MemObjFree(pGVM->gvmm.s.VMMapObj, false /* fFreeMappings */); AssertRC(rc);
1272 pGVM->gvmm.s.VMMapObj = NIL_RTR0MEMOBJ;
1275 if (pGVM->gvmm.s.VMPagesMemObj != NIL_RTR0MEMOBJ)
1277 rc = RTR0MemObjFree(pGVM->gvmm.s.VMPagesMemObj, false /* fFreeMappings */); AssertRC(rc);
1278 pGVM->gvmm.s.VMPagesMemObj = NIL_RTR0MEMOBJ;
1281 if (pGVM->gvmm.s.VMMemObj != NIL_RTR0MEMOBJ)
1283 rc = RTR0MemObjFree(pGVM->gvmm.s.VMMemObj, false /* fFreeMappings */); AssertRC(rc);
1284 pGVM->gvmm.s.VMMemObj = NIL_RTR0MEMOBJ;
1289 if (pGVM->aCpus[i].gvmm.s.HaltEventMulti != NIL_RTSEMEVENTMULTI)
1291 rc = RTSemEventMultiDestroy(pGVM->aCpus[i].gvmm.s.HaltEventMulti); AssertRC(rc);
1292 pGVM->aCpus[i].gvmm.s.HaltEventMulti = NIL_RTSEMEVENTMULTI;
1670 uint64_t u64 = ASMAtomicUoReadU64(&pCurGVCpu->gvmm.s.u64HaltExpire);
1675 if (ASMAtomicXchgU64(&pCurGVCpu->gvmm.s.u64HaltExpire, 0))
1677 int rc = RTSemEventMultiSignal(pCurGVCpu->gvmm.s.HaltEventMulti);
1711 uint64_t u64 = ASMAtomicUoReadU64(&pCurGVCpu->gvmm.s.u64HaltExpire);
1715 if (ASMAtomicXchgU64(&pCurGVCpu->gvmm.s.u64HaltExpire, 0))
1717 int rc = RTSemEventMultiSignal(pCurGVCpu->gvmm.s.HaltEventMulti);
1741 uint64_t u64 = ASMAtomicUoReadU64(&pCurGVCpu->gvmm.s.u64HaltExpire);
1745 if (ASMAtomicXchgU64(&pCurGVCpu->gvmm.s.u64HaltExpire, 0))
1747 int rc = RTSemEventMultiSignal(pCurGVCpu->gvmm.s.HaltEventMulti);
1789 pGVM->gvmm.s.StatsSched.cHaltCalls++;
1792 Assert(!pCurGVCpu->gvmm.s.u64HaltExpire);
1802 pCurGVCpu->gvmm.s.iCpuEmt = ASMGetApicId();
1810 pGVM->gvmm.s.StatsSched.cHaltWakeUps += gvmmR0SchedDoWakeUps(pGVMM, u64NowGip);
1822 pGVM->gvmm.s.StatsSched.cHaltBlocking++;
1827 ASMAtomicWriteU64(&pCurGVCpu->gvmm.s.u64HaltExpire, u64ExpireGipTime);
1831 rc = RTSemEventMultiWaitEx(pCurGVCpu->gvmm.s.HaltEventMulti,
1835 ASMAtomicWriteU64(&pCurGVCpu->gvmm.s.u64HaltExpire, 0);
1840 RTSemEventMultiReset(pCurGVCpu->gvmm.s.HaltEventMulti);
1843 pGVM->gvmm.s.StatsSched.cHaltTimeouts++;
1849 pGVM->gvmm.s.StatsSched.cHaltNotBlocking++;
1851 RTSemEventMultiReset(pCurGVCpu->gvmm.s.HaltEventMulti);
1870 pGVM->gvmm.s.StatsSched.cWakeUpCalls++;
1882 if (pGVCpu->gvmm.s.u64HaltExpire)
1885 ASMAtomicWriteU64(&pGVCpu->gvmm.s.u64HaltExpire, 0);
1890 pGVM->gvmm.s.StatsSched.cWakeUpNotHalted++;
1893 int rc2 = RTSemEventMultiSignal(pGVCpu->gvmm.s.HaltEventMulti);
1936 pGVM->gvmm.s.StatsSched.cWakeUpWakeUps += gvmmR0SchedDoWakeUps(pGVMM, u64Now);
1983 pGVM->gvmm.s.StatsSched.cPokeCalls++;
1989 pGVM->gvmm.s.StatsSched.cPokeNotBusy++;
2146 pGVM->gvmm.s.StatsSched.cPollCalls++;
2152 pGVM->gvmm.s.StatsSched.cPollWakeUps += gvmmR0SchedDoWakeUps(pGVMM, u64Now);
2364 pStats->SchedVM = pGVM->gvmm.s.StatsSched;
2396 pStats->SchedSum.cHaltCalls += pGVM->gvmm.s.StatsSched.cHaltCalls;
2397 pStats->SchedSum.cHaltBlocking += pGVM->gvmm.s.StatsSched.cHaltBlocking;
2398 pStats->SchedSum.cHaltTimeouts += pGVM->gvmm.s.StatsSched.cHaltTimeouts;
2399 pStats->SchedSum.cHaltNotBlocking += pGVM->gvmm.s.StatsSched.cHaltNotBlocking;
2400 pStats->SchedSum.cHaltWakeUps += pGVM->gvmm.s.StatsSched.cHaltWakeUps;
2402 pStats->SchedSum.cWakeUpCalls += pGVM->gvmm.s.StatsSched.cWakeUpCalls;
2403 pStats->SchedSum.cWakeUpNotHalted += pGVM->gvmm.s.StatsSched.cWakeUpNotHalted;
2404 pStats->SchedSum.cWakeUpWakeUps += pGVM->gvmm.s.StatsSched.cWakeUpWakeUps;
2406 pStats->SchedSum.cPokeCalls += pGVM->gvmm.s.StatsSched.cPokeCalls;
2407 pStats->SchedSum.cPokeNotBusy += pGVM->gvmm.s.StatsSched.cPokeNotBusy;
2409 pStats->SchedSum.cPollCalls += pGVM->gvmm.s.StatsSched.cPollCalls;
2410 pStats->SchedSum.cPollHalts += pGVM->gvmm.s.StatsSched.cPollHalts;
2411 pStats->SchedSum.cPollWakeUps += pGVM->gvmm.s.StatsSched.cPollWakeUps;
2499 do { if (pStats->SchedVM. field ) { pGVM->gvmm.s.StatsSched. field = 0; } } while (0)
2540 do { if (pStats->SchedSum. field ) { pGVM->gvmm.s.StatsSched. field = 0; } } while (0)