VirtualBox

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


Ignore:
Timestamp:
Feb 18, 2021 6:38:24 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
142852
Message:

VMM/TM: Moved the timers off the hyper heap. Replaced the relative offset addressing with queue array indexing. bugref:9943

Location:
trunk/include/VBox/vmm
Files:
6 edited

Legend:

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

    r87511 r87792  
    255255    } dbgfr0;
    256256
     257    union
     258    {
     259#if defined(VMM_INCLUDED_SRC_include_TMInternal_h) && defined(IN_RING0)
     260        TMR0PERVM           s;
     261#endif
     262        uint8_t             padding[128];
     263    } tmr0;
     264
    257265    /** Padding so aCpus starts on a page boundrary.  */
    258266#ifdef VBOX_WITH_NEM_R0
    259     uint8_t         abPadding2[4096*2 - 64 - 256 - 256 - 1024 - 256 - 64 - 2176 - 640 - 512 - 64 - 1024 - sizeof(PGVMCPU) * VMM_MAX_CPU_COUNT];
     267    uint8_t         abPadding2[4096*2 - 64 - 256 - 256 - 1024 - 256 - 64 - 2176 - 640 - 512 - 64 - 1024 - 128 - sizeof(PGVMCPU) * VMM_MAX_CPU_COUNT];
    260268#else
    261     uint8_t         abPadding2[4096*2 - 64 - 256 - 256 - 1024       - 64 - 2176 - 640 - 512 - 64 - 1024 - sizeof(PGVMCPU) * VMM_MAX_CPU_COUNT];
     269    uint8_t         abPadding2[4096*2 - 64 - 256 - 256 - 1024       - 64 - 2176 - 640 - 512 - 64 - 1024 - 128 - sizeof(PGVMCPU) * VMM_MAX_CPU_COUNT];
    262270#endif
    263271
  • trunk/include/VBox/vmm/gvm.mac

    r87511 r87792  
    8282        alignb 64
    8383        .dbgfr0             resb 1024
     84        alignb 64
     85        .tmr0               resb 128
    8486
    8587        times ((($ + VMM_MAX_CPU_COUNT * RTR0PTR_CB + 4095) & ~4095) - ($ + VMM_MAX_CPU_COUNT * RTR0PTR_CB)) resb 1
  • trunk/include/VBox/vmm/tm.h

    r87773 r87792  
    262262
    263263
    264 #ifdef IN_RING3
    265264/** @defgroup grp_tm_r3     The TM Host Context Ring-3 API
    266265 * @{
     
    296295VMMR3_INT_DECL(bool)    TMR3CpuTickIsFixedRateMonotonic(PVM pVM, bool fWithParavirtEnabled);
    297296/** @} */
    298 #endif /* IN_RING3 */
     297
     298
     299/** @defgroup grp_tm_r0     The TM Host Context Ring-0 API
     300 * @{
     301 */
     302VMMR0_INT_DECL(void)    TMR0InitPerVMData(PGVM pGVM);
     303VMMR0_INT_DECL(void)    TMR0CleanupVM(PGVM pGVM);
     304VMMR0_INT_DECL(int)     TMR0TimerQueueGrow(PGVM pGVM, uint32_t idxQueue, uint32_t cMinTimers);
     305/** @} */
    299306
    300307
  • trunk/include/VBox/vmm/vm.h

    r87777 r87792  
    13641364        struct TM   s;
    13651365#endif
    1366         uint8_t     padding[7872];      /* multiple of 64 */
     1366        uint8_t     padding[9152];      /* multiple of 64 */
    13671367    } tm;
    13681368
     
    14631463
    14641464    /** Padding for aligning the structure size on a page boundrary. */
    1465     uint8_t         abAlignment2[3672 - sizeof(PVMCPUR3) * VMM_MAX_CPU_COUNT];
     1465    uint8_t         abAlignment2[2392 - sizeof(PVMCPUR3) * VMM_MAX_CPU_COUNT];
    14661466
    14671467    /* ---- end small stuff ---- */
  • trunk/include/VBox/vmm/vm.mac

    r87777 r87792  
    131131    .em                     resb 256
    132132    .nem                    resb 128
    133     .tm                     resb 7872
     133    .tm                     resb 9152
    134134    .dbgf                   resb 2432
    135135    .ssm                    resb 128
  • trunk/include/VBox/vmm/vmm.h

    r87107 r87792  
    424424    VMMR0_DO_IOM_SYNC_STATS_INDICES,
    425425
    426     /** Official call we use for testing Ring-0 APIs. */
    427     VMMR0_DO_TESTS = 704,
    428 
    429426    /** Call DBGFR0TraceCreateReqHandler. */
    430     VMMR0_DO_DBGF_TRACER_CREATE = 710,
     427    VMMR0_DO_DBGF_TRACER_CREATE = 704,
    431428    /** Call DBGFR0TraceCallReqHandler. */
    432429    VMMR0_DO_DBGF_TRACER_CALL_REQ_HANDLER,
     
    439436    /** Call DBGFR0BpOwnerInitReqHandler(). */
    440437    VMMR0_DO_DBGF_BP_OWNER_INIT,
     438
     439    /** Grow a timer queue. */
     440    VMMR0_DO_TM_GROW_TIMER_QUEUE = 768,
     441
     442    /** Official call we use for testing Ring-0 APIs. */
     443    VMMR0_DO_TESTS = 2048,
    441444
    442445    /** The usual 32-bit type blow up. */
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