VirtualBox

Changeset 17284 in vbox


Ignore:
Timestamp:
Mar 3, 2009 2:33:35 PM (16 years ago)
Author:
vboxsync
Message:

Preliminary code to deal with VINF_EM_RAW_EMULATE_IO_BLOCK

Location:
trunk/src/VBox/VMM
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/EM.cpp

    r16898 r17284  
    23572357
    23582358        /*
     2359         * (MM)IO intensive code block detected; fall back to the recompiler for better performance
     2360         */
     2361        case VINF_EM_RAW_EMULATE_IO_BLOCK:
     2362            rc = VINF_EM_RESCHEDULE_REM;
     2363            break;
     2364
     2365        /*
    23592366         * Execute instruction.
    23602367         */
  • trunk/src/VBox/VMM/VMM.cpp

    r17005 r17284  
    323323    STAM_REG(pVM, &pVM->vmm.s.StatRZRetIRETTrap,            STAMTYPE_COUNTER, "/VMM/RZRet/IRETTrap",            STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_IRET_TRAP returns.");
    324324    STAM_REG(pVM, &pVM->vmm.s.StatRZRetEmulate,             STAMTYPE_COUNTER, "/VMM/RZRet/Emulate",             STAMUNIT_OCCURENCES, "Number of VINF_EM_EXECUTE_INSTRUCTION returns.");
     325    STAM_REG(pVM, &pVM->vmm.s.StatRZRetIOBlockEmulate,      STAMTYPE_COUNTER, "/VMM/RZRet/EmulateIOBlock",      STAMUNIT_OCCURENCES, "Number of VINF_EM_RAW_EMULATE_IO_BLOCK returns.");
    325326    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPatchEmulate,        STAMTYPE_COUNTER, "/VMM/RZRet/PatchEmulate",        STAMUNIT_OCCURENCES, "Number of VINF_PATCH_EMULATE_INSTR returns.");
    326327    STAM_REG(pVM, &pVM->vmm.s.StatRZRetIORead,              STAMTYPE_COUNTER, "/VMM/RZRet/IORead",              STAMUNIT_OCCURENCES, "Number of VINF_IOM_HC_IOPORT_READ returns.");
  • trunk/src/VBox/VMM/VMMInternal.h

    r14680 r17284  
    302302    STAMCOUNTER                 StatRZRetIRETTrap;
    303303    STAMCOUNTER                 StatRZRetEmulate;
     304    STAMCOUNTER                 StatRZRetIOBlockEmulate;
    304305    STAMCOUNTER                 StatRZRetPatchEmulate;
    305306    STAMCOUNTER                 StatRZRetIORead;
  • trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp

    r15931 r17284  
    14531453            }
    14541454#ifdef VBOX_STRICT
    1455             if (rc != VINF_EM_RAW_EMULATE_INSTR)
     1455            if (rc != VINF_EM_RAW_EMULATE_INSTR && rc != VINF_EM_RAW_EMULATE_IO_BLOCK)
    14561456                LogFlow(("PGMTrap0eHandler failed with %d\n", rc));
    14571457#endif
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp

    r17063 r17284  
    24292429                }
    24302430#ifdef VBOX_STRICT
    2431                 if (rc != VINF_EM_RAW_EMULATE_INSTR)
     2431                if (rc != VINF_EM_RAW_EMULATE_INSTR && rc != VINF_EM_RAW_EMULATE_IO_BLOCK)
    24322432                    Log2(("PGMTrap0eHandler failed with %d\n", rc));
    24332433#endif
  • trunk/src/VBox/VMM/VMMR0/VMMR0.cpp

    r17246 r17284  
    372372        case VINF_EM_RAW_EMULATE_INSTR:
    373373            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetEmulate);
     374            break;
     375        case VINF_EM_RAW_EMULATE_IO_BLOCK:
     376            STAM_COUNTER_INC(&pVM->vmm.s.StatRZRetIOBlockEmulate);
    374377            break;
    375378        case VINF_PATCH_EMULATE_INSTR:
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