Changeset 72657 in vbox
- Timestamp:
- Jun 22, 2018 11:05:11 AM (6 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
-
VMMAll/EMAll.cpp (modified) (2 diffs)
-
VMMR3/EM.cpp (modified) (1 diff)
-
include/EMInternal.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/EMAll.cpp
r72655 r72657 472 472 VBOXSTRICTRC rcStrict = IEMExecForExits(pVCpu, fWillExit, 473 473 pExitRec->cMaxInstructionsWithoutExit /* cMinInstructions*/, 474 4096 /*cMaxInstructions*/,474 pVCpu->em.s.cHistoryExecMaxInstructions, 475 475 pExitRec->cMaxInstructionsWithoutExit, 476 476 &ExecStats); … … 494 494 PEMEXITREC pExitRecUnconst = (PEMEXITREC)pExitRec; 495 495 VBOXSTRICTRC rcStrict = IEMExecForExits(pVCpu, fWillExit, 496 64 /*cMinInstructions*/,497 4096 /*cMaxInstructions*/,498 32 /*cMaxInstructionsWithoutExit*/,496 pVCpu->em.s.cHistoryProbeMinInstructions, 497 pVCpu->em.s.cHistoryExecMaxInstructions, 498 pVCpu->em.s.cHistoryProbeMaxInstructionsWithoutExit, 499 499 &ExecStats); 500 500 LogFlow(("EMHistoryExec/EXEC_PROBE: %Rrc cExits=%u cMaxExitDistance=%u cInstructions=%u\n", -
trunk/src/VBox/VMM/VMMR3/EM.cpp
r72643 r72657 183 183 pVM->aCpus[i].em.s.fExitOptimizationEnabledR0 = fExitOptimizationEnabledR0; 184 184 pVM->aCpus[i].em.s.fExitOptimizationEnabledR0PreemptDisabled = fExitOptimizationEnabledR0PreemptDisabled; 185 186 pVM->aCpus[i].em.s.cHistoryExecMaxInstructions = 8192; 187 pVM->aCpus[i].em.s.cHistoryProbeMinInstructions = 48; 188 pVM->aCpus[i].em.s.cHistoryProbeMaxInstructionsWithoutExit = 24; 189 #ifdef RT_OS_WINDOWS 190 if (VM_IS_NEM_ENABLED(pVM)) 191 { 192 pVM->aCpus[i].em.s.cHistoryProbeMaxInstructionsWithoutExit = 32; 193 pVM->aCpus[i].em.s.cHistoryProbeMinInstructions = 64; 194 } 195 #endif 185 196 } 186 197 -
trunk/src/VBox/VMM/include/EMInternal.h
r72642 r72657 503 503 * wrapped around or not. */ 504 504 uint64_t iNextExit; 505 506 /** Index into aExitRecords set by EMHistoryExec when returning to ring-3. 507 * This is UINT16_MAX if not armed. */ 508 uint16_t volatile idxContinueExitRec; 505 509 /** Whether exit optimizations are enabled or not (in general). */ 506 510 bool fExitOptimizationEnabled : 1; … … 510 514 bool fExitOptimizationEnabledR0PreemptDisabled : 1; 511 515 /** Explicit padding. */ 512 bool afPadding2[1]; 513 /** Index into aExitRecords set by EMHistoryExec when returning to ring-3. 514 * This is UINT16_MAX if not armed. */ 515 uint16_t volatile idxContinueExitRec; 516 bool fPadding2; 517 /** Max number of instructions to execute. */ 518 uint16_t cHistoryExecMaxInstructions; 519 /** Min number of instructions to execute while probing. */ 520 uint16_t cHistoryProbeMinInstructions; 521 /** Max number of instructions to execute without an exit before giving up probe. */ 522 uint16_t cHistoryProbeMaxInstructionsWithoutExit; 523 uint16_t uPadding3; 516 524 /** Number of exit records in use. */ 517 525 uint32_t cExitRecordUsed; … … 522 530 /** Number of instructions executed by EMHistoryExec. */ 523 531 STAMCOUNTER StatHistoryExecInstructions; 524 uint64_t aPadding3[2];532 uint64_t uPadding4; 525 533 /** Number of instructions executed by EMHistoryExec when probing. */ 526 534 STAMCOUNTER StatHistoryProbeInstructions;
Note:
See TracChangeset
for help on using the changeset viewer.

