VirtualBox

Changeset 10357

Show
Ignore:
Timestamp:
07/08/08 14:06:18 (6 months ago)
Author:
vboxsync
Message:

Flush the recompiler's TLB when our invlpg replay array overflows.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/VBox/VMM/VMMAll/REMAll.cpp

    r8155 r10357  
    5252         */ 
    5353        pVM->rem.s.aGCPtrInvalidatedPages[pVM->rem.s.cInvalidatedPages++] = GCPtrPage; 
    54         return VINF_SUCCESS; 
    5554    } 
    56     /* Note: another option is to signal a TLB flush for the recompiler */ 
    57     return VERR_REM_FLUSHED_PAGES_OVERFLOW; 
     55    else 
     56    { 
     57        /* Tell the recompiler to flush its TLB. */ 
     58        CPUMSetChangedFlags(pVM, CPUM_CHANGED_GLOBAL_TLB_FLUSH); 
     59        pVM->rem.s.cInvalidatedPages = 0; 
     60    } 
     61 
     62    return VINF_SUCCESS; 
    5863} 
    5964 
  • trunk/src/recompiler/VBoxRecompiler.c

    r9985 r10357  
    464464 
    465465    /* 
    466      * Save the REM stuff. 
     466     * Save the REM stuff. (is this really necessary? when the recompiler is restored, it has an empty TLB) 
    467467     */ 
    468468    SSMR3PutUInt(pSSM,  pRem->cInvalidatedPages); 

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy