VirtualBox

Changeset 60871 in vbox for trunk/include/VBox/vmm


Ignore:
Timestamp:
May 7, 2016 5:51:35 PM (9 years ago)
Author:
vboxsync
Message:

IEMAllCImplStrInstr.cpp.h: Check FFs for each page and after each INS/OUTS rep. In raw-mode, temporarily enable interrupts too.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/vm.h

    r60847 r60871  
    516516#define VMCPU_FF_RESUME_GUEST_MASK              (VMCPU_FF_TO_R3)
    517517
     518
     519/** VM flags that cause the REP[|NE|E] STRINS loops to yield immediately. */
     520#define VM_FF_HIGH_PRIORITY_POST_REPSTR_MASK    (  VM_FF_TM_VIRTUAL_SYNC | VM_FF_PGM_NEED_HANDY_PAGES | VM_FF_PGM_NO_MEMORY \
     521                                                 | VM_FF_EMT_RENDEZVOUS | VM_FF_RESET | VM_FF_PGM_POOL_FLUSH_PENDING )
     522/** VM flags that cause the REP[|NE|E] STRINS loops to yield. */
     523#define VM_FF_YIELD_REPSTR_MASK                 (  VM_FF_HIGH_PRIORITY_POST_REPSTR_MASK \
     524                                                 | VM_FF_PDM_QUEUES | VM_FF_PDM_DMA | VM_FF_DBGF | VM_FF_DEBUG_SUSPEND )
     525/** VMCPU flags that cause the REP[|NE|E] STRINS loops to yield immediately. */
     526#ifdef IN_RING3
     527# define VMCPU_FF_HIGH_PRIORITY_POST_REPSTR_MASK ( VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL )
     528#else
     529# define VMCPU_FF_HIGH_PRIORITY_POST_REPSTR_MASK (  VMCPU_FF_TO_R3 | VMCPU_FF_IEM | VMCPU_FF_IOM | VMCPU_FF_PGM_SYNC_CR3 \
     530                                                  | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL )
     531#endif
     532/** VMCPU flags that cause the REP[|NE|E] STRINS loops to yield, interrupts
     533 *  enabled. */
     534#define VMCPU_FF_YIELD_REPSTR_MASK              (  VMCPU_FF_HIGH_PRIORITY_POST_REPSTR_MASK \
     535                                                 | VMCPU_FF_INTERRUPT_APIC | VMCPU_FF_UPDATE_APIC   | VMCPU_FF_INTERRUPT_PIC \
     536                                                 | VMCPU_FF_INTERRUPT_NMI  | VMCPU_FF_INTERRUPT_SMI | VMCPU_FF_PDM_CRITSECT \
     537                                                 | VMCPU_FF_TIMER          | VMCPU_FF_REQUEST )
     538/** VMCPU flags that cause the REP[|NE|E] STRINS loops to yield, interrupts
     539 *  disabled. */
     540#define VMCPU_FF_YIELD_REPSTR_NOINT_MASK        (  VMCPU_FF_YIELD_REPSTR_MASK \
     541                                                 & ~(VMCPU_FF_INTERRUPT_APIC | VMCPU_FF_UPDATE_APIC   | VMCPU_FF_INTERRUPT_PIC) )
     542
    518543/** VM Flags that cause the HM loops to go back to ring-3. */
    519544#define VM_FF_HM_TO_R3_MASK                     (  VM_FF_TM_VIRTUAL_SYNC | VM_FF_PGM_NEED_HANDY_PAGES | VM_FF_PGM_NO_MEMORY \
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