Changeset 92493 in vbox
- Timestamp:
- Nov 18, 2021 2:01:56 PM (3 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
-
include/VBox/err.h (modified) (1 diff)
-
src/VBox/VMM/VMMAll/IEMAllCImplSvmInstr.cpp.h (modified) (1 diff)
-
src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h (modified) (1 diff)
-
src/VBox/VMM/VMMAll/PGMAll.cpp (modified) (1 diff)
-
src/VBox/VMM/VMMR0/VMMR0.cpp (modified) (1 diff)
-
src/VBox/VMM/VMMR3/EM.cpp (modified) (6 diffs)
-
src/VBox/VMM/VMMR3/VMM.cpp (modified) (1 diff)
-
src/VBox/VMM/include/EMHandleRCTmpl.h (modified) (1 diff)
-
src/VBox/VMM/include/VMMInternal.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/err.h
r92444 r92493 512 512 * aliased or/and mapped by multiple PTs. */ 513 513 #define VINF_PGM_GCPHYS_ALIASED 1623 514 /** Reason for leaving RC: Paging mode changed.515 * PGMChangeMode() uses this to force a switch to R3 so it can safely deal with516 * a mode switch. */517 #define VINF_PGM_CHANGE_MODE 1624518 514 /** SyncPage modified the PDE. 519 515 * This is an internal status code used to communicate back to the \#PF handler -
trunk/src/VBox/VMM/VMMAll/IEMAllCImplSvmInstr.cpp.h
r91580 r92493 93 93 */ 94 94 int rc = PGMChangeMode(pVCpu, pVCpu->cpum.GstCtx.cr0 | X86_CR0_PE, pVCpu->cpum.GstCtx.cr4, pVCpu->cpum.GstCtx.msrEFER); 95 # ifdef IN_RING396 Assert(rc != VINF_PGM_CHANGE_MODE);97 # endif98 95 AssertRCReturn(rc, rc); 99 96 -
trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h
r91987 r92493 1227 1227 */ 1228 1228 int rc = PGMChangeMode(pVCpu, pVCpu->cpum.GstCtx.cr0 | X86_CR0_PE, pVCpu->cpum.GstCtx.cr4, pVCpu->cpum.GstCtx.msrEFER); 1229 # ifdef IN_RING31230 Assert(rc != VINF_PGM_CHANGE_MODE);1231 # endif1232 1229 AssertRCReturn(rc, rc); 1233 1230 -
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r92491 r92493 2781 2781 * VM scheduling. 2782 2782 * @retval VINF_SUCCESS if the was no change, or it was successfully dealt with. 2783 * @retval VINF_PGM_CHANGE_MODE if we're in RC the mode changes. This will2784 * NOT be returned in ring-3 or ring-0.2785 2783 * @retval VINF_EM_SUSPEND or VINF_EM_OFF on a fatal runtime error. (R3 only) 2786 2784 * -
trunk/src/VBox/VMM/VMMR0/VMMR0.cpp
r92411 r92493 1298 1298 STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPATMDuplicateFn); 1299 1299 break; 1300 case VINF_PGM_CHANGE_MODE:1301 STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPGMChangeMode);1302 break;1303 1300 case VINF_PGM_POOL_FLUSH_PENDING: 1304 1301 STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPGMFlushPending); -
trunk/src/VBox/VMM/VMMR3/EM.cpp
r92119 r92493 1504 1504 { 1505 1505 VBOXSTRICTRC rcStrict = IEMExecVmxVmexitExtInt(pVCpu, 0 /* uVector */, true /* fIntPending */); 1506 AssertMsg( rcStrict != VINF_PGM_CHANGE_MODE 1507 && rcStrict != VINF_VMX_VMEXIT 1506 AssertMsg( rcStrict != VINF_VMX_VMEXIT 1508 1507 && rcStrict != VINF_NO_CHANGE, ("%Rrc\n", VBOXSTRICTRC_VAL(rcStrict))); 1509 1508 if (rcStrict != VINF_VMX_INTERCEPT_NOT_ACTIVE) … … 1534 1533 if (RT_SUCCESS(rcStrict)) 1535 1534 { 1536 AssertMsg( rcStrict != VINF_PGM_CHANGE_MODE 1537 && rcStrict != VINF_SVM_VMEXIT 1535 AssertMsg( rcStrict != VINF_SVM_VMEXIT 1538 1536 && rcStrict != VINF_NO_CHANGE, ("%Rrc\n", VBOXSTRICTRC_VAL(rcStrict))); 1539 1537 return VBOXSTRICTRC_VAL(rcStrict); … … 1566 1564 if (RT_SUCCESS(rcStrict)) 1567 1565 { 1568 Assert(rcStrict != VINF_PGM_CHANGE_MODE);1569 1566 Assert(rcStrict != VINF_SVM_VMEXIT); 1570 1567 return VBOXSTRICTRC_VAL(rcStrict); … … 1945 1942 rc2 = VBOXSTRICTRC_VAL(IEMExecVmxVmexit(pVCpu, VMX_EXIT_NMI_WINDOW, 0 /* uExitQual */)); 1946 1943 AssertMsg( rc2 != VINF_VMX_INTERCEPT_NOT_ACTIVE 1947 && rc2 != VINF_PGM_CHANGE_MODE1948 1944 && rc2 != VINF_VMX_VMEXIT 1949 1945 && rc2 != VINF_NO_CHANGE, ("%Rrc\n", rc2)); … … 1973 1969 { 1974 1970 rc2 = VBOXSTRICTRC_VAL(IEMExecSvmVmexit(pVCpu, SVM_EXIT_NMI, 0 /* uExitInfo1 */, 0 /* uExitInfo2 */)); 1975 AssertMsg( rc2 != VINF_PGM_CHANGE_MODE 1976 && rc2 != VINF_SVM_VMEXIT 1971 AssertMsg( rc2 != VINF_SVM_VMEXIT 1977 1972 && rc2 != VINF_NO_CHANGE, ("%Rrc\n", rc2)); 1978 1973 UPDATE_RC(); … … 2010 2005 rc2 = VBOXSTRICTRC_VAL(IEMExecVmxVmexit(pVCpu, VMX_EXIT_INT_WINDOW, 0 /* uExitQual */)); 2011 2006 AssertMsg( rc2 != VINF_VMX_INTERCEPT_NOT_ACTIVE 2012 && rc2 != VINF_PGM_CHANGE_MODE2013 2007 && rc2 != VINF_VMX_VMEXIT 2014 2008 && rc2 != VINF_NO_CHANGE, ("%Rrc\n", rc2)); -
trunk/src/VBox/VMM/VMMR3/VMM.cpp
r92408 r92493 373 373 STAM_REG(pVM, &pVM->vmm.s.StatRZRetInterruptPending, STAMTYPE_COUNTER, "/VMM/RZRet/InterruptPending", STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_INTERRUPT_PENDING returns."); 374 374 STAM_REG(pVM, &pVM->vmm.s.StatRZRetPATMDuplicateFn, STAMTYPE_COUNTER, "/VMM/RZRet/PATMDuplicateFn", STAMUNIT_OCCURENCES, "Number of VINF_PATM_DUPLICATE_FUNCTION returns."); 375 STAM_REG(pVM, &pVM->vmm.s.StatRZRetPGMChangeMode, STAMTYPE_COUNTER, "/VMM/RZRet/PGMChangeMode", STAMUNIT_OCCURENCES, "Number of VINF_PGM_CHANGE_MODE returns.");376 375 STAM_REG(pVM, &pVM->vmm.s.StatRZRetPGMFlushPending, STAMTYPE_COUNTER, "/VMM/RZRet/PGMFlushPending", STAMUNIT_OCCURENCES, "Number of VINF_PGM_POOL_FLUSH_PENDING returns."); 377 376 STAM_REG(pVM, &pVM->vmm.s.StatRZRetPendingRequest, STAMTYPE_COUNTER, "/VMM/RZRet/PendingRequest", STAMUNIT_OCCURENCES, "Number of VINF_EM_PENDING_REQUEST returns."); -
trunk/src/VBox/VMM/include/EMHandleRCTmpl.h
r89993 r92493 91 91 case VINF_PGM_POOL_FLUSH_PENDING: 92 92 rc = VINF_SUCCESS; 93 break;94 95 /*96 * Paging mode change.97 */98 case VINF_PGM_CHANGE_MODE:99 CPUM_ASSERT_NOT_EXTRN(pVCpu, CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_CR3 | CPUMCTX_EXTRN_CR4 | CPUMCTX_EXTRN_EFER);100 rc = PGMChangeMode(pVCpu, pVCpu->cpum.GstCtx.cr0, pVCpu->cpum.GstCtx.cr4, pVCpu->cpum.GstCtx.msrEFER);101 if (rc == VINF_SUCCESS)102 rc = VINF_EM_RESCHEDULE;103 AssertMsg(RT_FAILURE(rc) || (rc >= VINF_EM_FIRST && rc <= VINF_EM_LAST), ("%Rrc\n", rc));104 93 break; 105 94 #endif /* !EMHANDLERC_WITH_NEM */ -
trunk/src/VBox/VMM/include/VMMInternal.h
r92408 r92493 396 396 STAMCOUNTER StatRZRetInterruptPending; 397 397 STAMCOUNTER StatRZRetPATMDuplicateFn; 398 STAMCOUNTER StatRZRetPGMChangeMode;399 398 STAMCOUNTER StatRZRetPendingRequest; 400 399 STAMCOUNTER StatRZRetPGMFlushPending;
Note:
See TracChangeset
for help on using the changeset viewer.

