VirtualBox

Changeset 20406 in vbox for trunk


Ignore:
Timestamp:
Jun 8, 2009 1:39:32 PM (16 years ago)
Author:
vboxsync
Message:

Removed obsolete REMR3ReplayInvalidatedPages

Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/err.h

    r20158 r20406  
    690690/** Recompiler execution was interrupted by forced action. */
    691691#define VINF_REM_INTERRUPED_FF              2302
    692 /** Reason for leaving GC: Must flush pending invlpg operations to REM.
    693  * Tell REM to flush page invalidations. Will temporary go to REM context
    694  * from REM and perform the flushes. */
    695 #define VERR_REM_FLUSHED_PAGES_OVERFLOW     (-2303)
    696692/** Too many similar traps. This is a very useful debug only
    697693 * check (we don't do double/tripple faults in REM). */
  • trunk/src/VBox/VMM/EM.cpp

    r20399 r20406  
    25052505
    25062506        /*
    2507          * REMGCNotifyInvalidatePage() failed because of overflow.
    2508          */
    2509         case VERR_REM_FLUSHED_PAGES_OVERFLOW:
    2510             Assert((pCtx->ss & X86_SEL_RPL) != 1);
    2511             EMR3RemLock(pVM);
    2512             REMR3ReplayInvalidatedPages(pVM, pVCpu);
    2513             EMR3RemUnlock(pVM);
    2514             rc = VINF_SUCCESS;
    2515             break;
    2516 
    2517         /*
    25182507         * I/O Port access - emulate the instruction.
    25192508         */
  • trunk/src/VBox/VMM/VMM.cpp

    r20196 r20406  
    357357    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPatchGP,             STAMTYPE_COUNTER, "/VMM/RZRet/PatchGP",             STAMUNIT_OCCURENCES, "Number of VINF_PATM_PATCH_TRAP_GP returns.");
    358358    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPatchIretIRQ,        STAMTYPE_COUNTER, "/VMM/RZRet/PatchIret",           STAMUNIT_OCCURENCES, "Number of VINF_PATM_PENDING_IRQ_AFTER_IRET returns.");
    359     STAM_REG(pVM, &pVM->vmm.s.StatRZRetPageOverflow,        STAMTYPE_COUNTER, "/VMM/RZRet/InvlpgOverflow",      STAMUNIT_OCCURENCES, "Number of VERR_REM_FLUSHED_PAGES_OVERFLOW returns.");
    360359    STAM_REG(pVM, &pVM->vmm.s.StatRZRetRescheduleREM,       STAMTYPE_COUNTER, "/VMM/RZRet/ScheduleREM",         STAMUNIT_OCCURENCES, "Number of VINF_EM_RESCHEDULE_REM returns.");
    361360    STAM_REG(pVM, &pVM->vmm.s.StatRZRetToR3,                STAMTYPE_COUNTER, "/VMM/RZRet/ToR3",                STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_TO_R3 returns.");
  • trunk/src/VBox/VMM/VMMAll/EMAll.cpp

    r20001 r20406  
    18881888        ||  rc == VINF_PGM_SYNC_CR3 /* we can rely on the FF */)
    18891889        return VINF_SUCCESS;
    1890     AssertMsgReturn(   rc == VERR_REM_FLUSHED_PAGES_OVERFLOW
    1891                     || rc == VINF_EM_RAW_EMULATE_INSTR,
     1890    AssertMsgReturn(rc == VINF_EM_RAW_EMULATE_INSTR,
    18921891                    ("%Rrc addr=%RGv\n", rc, pAddrGC),
    18931892                    VERR_EM_INTERPRETER);
     
    19311930        ||  rc == VINF_PGM_SYNC_CR3 /* we can rely on the FF */)
    19321931        return VINF_SUCCESS;
    1933     AssertMsgReturn(   rc == VERR_REM_FLUSHED_PAGES_OVERFLOW
    1934                     || rc == VINF_EM_RAW_EMULATE_INSTR,
     1932    AssertMsgReturn(rc == VINF_EM_RAW_EMULATE_INSTR,
    19351933                    ("%Rrc addr=%RGv\n", rc, addr),
    19361934                    VERR_EM_INTERPRETER);
  • trunk/src/VBox/VMM/VMMAll/REMAll.cpp

    r19479 r20406  
    4141 *
    4242 * @returns VINF_SUCCESS on success.
    43  * @returns VERR_REM_FLUSHED_PAGES_OVERFLOW if a return to HC for flushing of
    44  *          recorded pages is required before the call can succeed.
    4543 * @param   pVM         The VM handle.
    4644 * @param   GCPtrPage   The
  • trunk/src/VBox/VMM/VMMInternal.h

    r20374 r20406  
    297297    STAMCOUNTER                 StatRZRetPatchGP;
    298298    STAMCOUNTER                 StatRZRetPatchIretIRQ;
    299     STAMCOUNTER                 StatRZRetPageOverflow;
    300299    STAMCOUNTER                 StatRZRetRescheduleREM;
    301300    STAMCOUNTER                 StatRZRetToR3;
  • trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp

    r20344 r20406  
    26522652        return VINF_SUCCESS;
    26532653    }
    2654     Assert(rc == VERR_REM_FLUSHED_PAGES_OVERFLOW);
     2654    AssertRC(rc);
    26552655    return rc;
    26562656}
  • trunk/src/VBox/VMM/VMMR0/VMMR0.cpp

    r20374 r20406  
    433433        case VINF_PATM_PENDING_IRQ_AFTER_IRET:
    434434            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPatchIretIRQ);
    435             break;
    436         case VERR_REM_FLUSHED_PAGES_OVERFLOW:
    437             STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetPageOverflow);
    438435            break;
    439436        case VINF_EM_RESCHEDULE_REM:
  • trunk/src/recompiler/VBoxREM.def

    r18662 r20406  
    3737    REMR3A20Set
    3838    REMR3DisasEnableStepping
    39     REMR3ReplayInvalidatedPages
    4039    REMR3ReplayHandlerNotifications
    4140    REMR3NotifyPhysRamRegister
  • trunk/src/recompiler/VBoxREMWrapper.cpp

    r20402 r20406  
    345345static DECLCALLBACKPTR(void, pfnREMR3StateUpdate)(PVM, PVMCPU);
    346346static DECLCALLBACKPTR(void, pfnREMR3A20Set)(PVM, PVMCPU, bool);
    347 static DECLCALLBACKPTR(void, pfnREMR3ReplayInvalidatedPages)(PVM, PVMCPU);
    348347static DECLCALLBACKPTR(void, pfnREMR3ReplayHandlerNotifications)(PVM pVM);
    349348static DECLCALLBACKPTR(void, pfnREMR3NotifyPhysRamRegister)(PVM, RTGCPHYS, RTGCPHYS, unsigned);
     
    10481047    { "REMR3StateUpdate",                       (void *)&pfnREMR3StateUpdate,                       &g_aArgsVMandVMCPU[0],                      RT_ELEMENTS(g_aArgsVMandVMCPU),                        REMFNDESC_FLAGS_RET_VOID,   0,              NULL },
    10491048    { "REMR3A20Set",                            (void *)&pfnREMR3A20Set,                            &g_aArgsA20Set[0],                          RT_ELEMENTS(g_aArgsA20Set),                            REMFNDESC_FLAGS_RET_VOID,   0,              NULL },
    1050     { "REMR3ReplayInvalidatedPages",            (void *)&pfnREMR3ReplayInvalidatedPages,            &g_aArgsVMandVMCPU[0],                      RT_ELEMENTS(g_aArgsVMandVMCPU),                        REMFNDESC_FLAGS_RET_VOID,   0,              NULL },
    10511049    { "REMR3ReplayHandlerNotifications",        (void *)&pfnREMR3ReplayHandlerNotifications,        &g_aArgsVM[0],                              RT_ELEMENTS(g_aArgsVM),                                REMFNDESC_FLAGS_RET_VOID,   0,              NULL },
    10521050    { "REMR3NotifyPhysRamRegister",             (void *)&pfnREMR3NotifyPhysRamRegister,             &g_aArgsNotifyPhysRamRegister[0],           RT_ELEMENTS(g_aArgsNotifyPhysRamRegister),             REMFNDESC_FLAGS_RET_VOID,   0,              NULL },
     
    21542152}
    21552153
    2156 REMR3DECL(void) REMR3ReplayInvalidatedPages(PVM pVM, PVMCPU pVCpu)
    2157 {
    2158 #ifndef USE_REM_STUBS
    2159     Assert(VALID_PTR(pfnREMR3ReplayInvalidatedPages));
    2160     pfnREMR3ReplayInvalidatedPages(pVM, pVCpu);
    2161 #endif
    2162 }
    2163 
    21642154REMR3DECL(void) REMR3ReplayHandlerNotifications(PVM pVM)
    21652155{
  • trunk/src/recompiler/VBoxRecompiler.c

    r20399 r20406  
    26822682
    26832683    pVM->rem.s.fIgnoreAll = fSaved;
    2684 }
    2685 
    2686 
    2687 /**
    2688  * Replays the invalidated recorded pages.
    2689  * Called in response to VERR_REM_FLUSHED_PAGES_OVERFLOW from the RAW execution loop.
    2690  *
    2691  * @param   pVM         VM handle.
    2692  * @param   pVCpu       VMCPU handle.
    2693  */
    2694 REMR3DECL(void) REMR3ReplayInvalidatedPages(PVM pVM, PVMCPU pVCpu)
    2695 {
    2696     RTUINT i;
    2697 
    2698     VM_ASSERT_EMT(pVM);
    2699 
    2700     /*
    2701      * Sync the required registers.
    2702      */
    2703     pVM->rem.s.Env.cr[0] = pVM->rem.s.pCtx->cr0;
    2704     pVM->rem.s.Env.cr[2] = pVM->rem.s.pCtx->cr2;
    2705     pVM->rem.s.Env.cr[3] = pVM->rem.s.pCtx->cr3;
    2706     pVM->rem.s.Env.cr[4] = pVM->rem.s.pCtx->cr4;
    2707 
    2708     /*
    2709      * Replay the flushes.
    2710      */
    2711     pVM->rem.s.fIgnoreInvlPg = true;
    2712     for (i = 0; i < pVM->rem.s.cInvalidatedPages; i++)
    2713     {
    2714         Log2(("REMR3ReplayInvalidatedPages: invlpg %RGv\n", pVM->rem.s.aGCPtrInvalidatedPages[i]));
    2715         tlb_flush_page(&pVM->rem.s.Env, pVM->rem.s.aGCPtrInvalidatedPages[i]);
    2716     }
    2717     pVM->rem.s.fIgnoreInvlPg = false;
    2718     pVM->rem.s.cInvalidatedPages = 0;
    27192684}
    27202685
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette