VirtualBox

Changeset 93593 in vbox for trunk/include/VBox/vmm/vm.h


Ignore:
Timestamp:
Feb 3, 2022 9:05:05 PM (3 years ago)
Author:
vboxsync
Message:

VMM: Embedded the zero and mmio-dummy pages into the VM structure and realigned it for a 16384 page size. bugref:9898

File:
1 edited

Legend:

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

    r93115 r93593  
    316316        uint8_t             padding[40960];      /* multiple of 4096 */
    317317    } em;
     318
     319    /** Align the structure size on 16384 boundrary for arm64 purposes. */
     320    uint8_t                 abStructPadding[4096];
    318321} VMCPU;
    319322
    320323
    321324#ifndef VBOX_FOR_DTRACE_LIB
    322 AssertCompileSizeAlignment(VMCPU, 4096);
     325AssertCompileSizeAlignment(VMCPU, 16384);
    323326
    324327/** @name Operations on VMCPU::enmState
     
    12561259        /** @todo this is rather bloated because of static MSR range allocation.
    12571260         *        Probably a good idea to move it to a separate R0 allocation... */
    1258         uint8_t     padding[8832 + 128*8192];    /* multiple of 64 */
     1261        uint8_t     padding[8832 + 128*8192 + 0x1d00]; /* multiple of 64 */
    12591262    } cpum;
     1263
     1264    /** PGM part.
     1265     * @note 16384 aligned for zero and mmio page storage. */
     1266    union
     1267    {
     1268#ifdef VMM_INCLUDED_SRC_include_PGMInternal_h
     1269        struct PGM  s;
     1270#endif
     1271        uint8_t     padding[53888];     /* multiple of 64 */
     1272    } pgm;
    12601273
    12611274    /** VMM part. */
     
    12671280        uint8_t     padding[1600];      /* multiple of 64 */
    12681281    } vmm;
    1269 
    1270     /** PGM part. */
    1271     union
    1272     {
    1273 #ifdef VMM_INCLUDED_SRC_include_PGMInternal_h
    1274         struct PGM  s;
    1275 #endif
    1276         uint8_t     padding[21120];     /* multiple of 64 */
    1277     } pgm;
    12781282
    12791283    /** HM part. */
     
    14541458
    14551459    /** Padding for aligning the structure size on a page boundrary. */
    1456     uint8_t         abAlignment2[1752 - sizeof(PVMCPUR3) * VMM_MAX_CPU_COUNT];
     1460    uint8_t         abAlignment2[6616 - sizeof(PVMCPUR3) * VMM_MAX_CPU_COUNT];
    14571461
    14581462    /* ---- end small stuff ---- */
     
    14601464    /** Array of VMCPU ring-3 pointers. */
    14611465    PVMCPUR3        apCpusR3[VMM_MAX_CPU_COUNT];
     1466
     1467    /* This point is aligned on a 16384 boundrary (for arm64 purposes). */
    14621468} VM;
     1469#ifndef VBOX_FOR_DTRACE_LIB
     1470AssertCompileSizeAlignment(VM, 16384);
     1471#endif
    14631472
    14641473
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