VirtualBox

Changeset 90380 in vbox for trunk/include/VBox/vmm/gvm.h


Ignore:
Timestamp:
Jul 28, 2021 9:38:23 PM (4 years ago)
Author:
vboxsync
Message:

VMM: Moved idHostCpu and iHostCpuSet from VMCPU to GVMCPU, removing the VMMR0PERVCPU copies too. bugref:6695

File:
1 edited

Legend:

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

    r90379 r90380  
    5757
    5858    /** VCPU id (0 - (pVM->cCpus - 1). */
    59     VMCPUID         idCpu;
     59    VMCPUID             idCpu;
    6060    /** Padding. */
    61     uint32_t        uPadding;
     61    uint32_t            uPadding0;
    6262
    6363    /** Handle to the EMT thread. */
    64     RTNATIVETHREAD  hEMT;
     64    RTNATIVETHREAD      hEMT;
    6565
    6666    /** Pointer to the global (ring-0) VM structure this CPU belongs to. */
    67     R0PTRTYPE(PGVM) pGVM;
     67    R0PTRTYPE(PGVM)     pGVM;
    6868    /** Pointer to the GVM structure, for CTX_SUFF use in VMMAll code.  */
    69     PGVM            pVMR0;
     69    PGVM                pVMR0;
    7070    /** The ring-3 address of this structure (only VMCPU part). */
    71     PVMCPUR3        pVCpuR3;
     71    PVMCPUR3            pVCpuR3;
     72
     73    /** Padding so the noisy stuff on a 64 byte boundrary.
     74     * @note Keeping this working for 32-bit header syntax checking.  */
     75    uint8_t             abPadding1[HC_ARCH_BITS == 32 ? 40 : 24];
     76
     77    /** Which host CPU ID is this EMT running on.
     78     * Only valid when in RC or HMR0 with scheduling disabled. */
     79    RTCPUID volatile    idHostCpu;
     80    /** The CPU set index corresponding to idHostCpu, UINT32_MAX if not valid.
     81     * @remarks Best to make sure iHostCpuSet shares cache line with idHostCpu! */
     82    uint32_t volatile   iHostCpuSet;
    7283
    7384    /** Padding so gvmm starts on a 64 byte boundrary.
    7485     * @note Keeping this working for 32-bit header syntax checking.  */
    75     uint8_t         abPadding[HC_ARCH_BITS == 32 ? 40 : 24];
     86    uint8_t             abPadding2[56];
    7687
    7788    /** The GVMM per vcpu data. */
     
    109120        struct VMMR0PERVCPU s;
    110121#endif
    111         uint8_t             padding[128];
     122        uint8_t             padding[64];
    112123    } vmmr0;
    113124
    114125    /** Padding the structure size to page boundrary. */
    115126#ifdef VBOX_WITH_NEM_R0
    116     uint8_t                 abPadding2[4096 - 64 - 64 - 1024 - 64 - 128];
     127    uint8_t                 abPadding3[4096 - 64*2 - 64 - 1024 - 64 - 64];
    117128#else
    118     uint8_t                 abPadding2[4096 - 64 - 64 - 1024 - 128];
     129    uint8_t                 abPadding3[4096 - 64*2 - 64 - 1024 - 64];
    119130#endif
    120131} GVMCPU;
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