VirtualBox

Changeset 10410 in vbox


Ignore:
Timestamp:
Jul 9, 2008 12:23:26 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
33067
Message:

Introduced VM_FF_REM_HANDLER_NOTIFY action flag to replay the handler notifications whenever possible in ring 3. This will
save some unnecessary context switches.

Location:
trunk
Files:
3 edited

Legend:

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

    r10409 r10410  
    107107#define VM_FF_TO_R3                     RT_BIT_32(28)
    108108
     109/** REM needs to be informed about handler changes. */
     110#define VM_FF_REM_HANDLER_NOTIFY        RT_BIT_32(29)
     111
    109112/** Suspend the VM - debug only. */
    110113#define VM_FF_DEBUG_SUSPEND             RT_BIT_32(31)
     
    125128#define VM_FF_NORMAL_PRIORITY_POST_MASK (VM_FF_TERMINATE | VM_FF_DBGF | VM_FF_RESET | VM_FF_CSAM_SCAN_PAGE)
    126129/** Normal priority actions. */
    127 #define VM_FF_NORMAL_PRIORITY_MASK      (VM_FF_REQUEST | VM_FF_PDM_QUEUES | VM_FF_PDM_DMA)
     130#define VM_FF_NORMAL_PRIORITY_MASK      (VM_FF_REQUEST | VM_FF_PDM_QUEUES | VM_FF_PDM_DMA | VM_FF_REM_HANDLER_NOTIFY)
    128131/** Flags to check before resuming guest execution. */
    129132#define VM_FF_RESUME_GUEST_MASK         (VM_FF_TO_R3)
  • trunk/src/VBox/VMM/VMMAll/REMAll.cpp

    r10357 r10410  
    102102    pRec->u.PhysicalRegister.cb = cb;
    103103    pRec->u.PhysicalRegister.fHasHCHandler = fHasHCHandler;
     104    VM_FF_SET(pVM, VM_FF_REM_HANDLER_NOTIFY);
    104105}
    105106
     
    126127    pRec->u.PhysicalDeregister.fHasHCHandler = fHasHCHandler;
    127128    pRec->u.PhysicalDeregister.fRestoreAsRAM = fRestoreAsRAM;
     129    VM_FF_SET(pVM, VM_FF_REM_HANDLER_NOTIFY);
    128130}
    129131
     
    152154    pRec->u.PhysicalModify.fHasHCHandler = fHasHCHandler;
    153155    pRec->u.PhysicalModify.fRestoreAsRAM = fRestoreAsRAM;
     156    VM_FF_SET(pVM, VM_FF_REM_HANDLER_NOTIFY);
    154157}
    155158
  • trunk/src/recompiler/VBoxRecompiler.c

    r10408 r10410  
    25022502
    25032503/**
    2504  * Replays the invalidated recorded pages.
    2505  * Called in response to VERR_REM_FLUSHED_PAGES_OVERFLOW from the RAW execution loop.
     2504 * Replays the handler notification changes
     2505 * Called in response to VM_FF_REM_HANDLER_NOTIFY from the RAW execution loop.
    25062506 *
    25072507 * @param   pVM         VM handle.
     
    25552555        }
    25562556    }
     2557    VM_FF_CLEAR(pVM, VM_FF_REM_HANDLER_NOTIFY);
    25572558}
    25582559
Note: See TracChangeset for help on using the changeset viewer.

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