VirtualBox

Changeset 79572 in vbox for trunk/include


Ignore:
Timestamp:
Jul 7, 2019 9:22:30 AM (6 years ago)
Author:
vboxsync
Message:

VMM: Nested VMX: bugref:9180 Use a separate HC page for the guest's virtual-APIC page.

File:
1 edited

Legend:

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

    r78632 r79572  
    601601                uint32_t                uShadowVmcsR3Padding;
    602602#endif
    603                 /** 0x328 - Reserved - R0 ptr. */
    604                 R0PTRTYPE(void *)       pvRsvdR0;
    605 #if HC_ARCH_BITS == 32
    606                 uint32_t                uRsvdR0Padding0;
    607 #endif
    608                 /** 0x330 - Reserved - R3 ptr. */
    609                 R3PTRTYPE(void *)       pvRsvdR3;
    610 #if HC_ARCH_BITS == 32
    611                 uint32_t                uRsvdR3Padding0;
     603                /** 0x328 - The virtual-APIC page - R0 ptr. */
     604                R0PTRTYPE(void *)       pvVirtApicPageR0;
     605#if HC_ARCH_BITS == 32
     606                uint32_t                uVirtApicPageR0Padding;
     607#endif
     608                /** 0x330 - The virtual-APIC page - R3 ptr. */
     609                R3PTRTYPE(void *)       pvVirtApicPageR3;
     610#if HC_ARCH_BITS == 32
     611                uint32_t                uVirtApicPageR3Padding;
    612612#endif
    613613                /** 0x338 - The VMREAD bitmap - R0 ptr. */
     
    692692                /** 0x3c2 - Whether virtual-NMI blocking is in effect. */
    693693                bool                    fVirtNmiBlocking;
    694                 /** 0x3c3 - Padding. */
    695                 uint8_t                 abPadding0[5];
     694                /** 0x3c3 - Whether the virtual-APIC may have been modified in VMX non-root
     695                 *  operation and we should write to it before VM-exit. */
     696                bool                    fVirtApicPageDirty;
     697                /** 0x3c4 - Padding. */
     698                uint8_t                 abPadding0[4];
    696699                /** 0x3c8 - Guest VMX MSRs. */
    697700                VMXMSRS                 Msrs;
     
    701704                RTHCPHYS                HCPhysShadowVmcs;
    702705                /** 0x4b8 - Host physical address of the virtual-APIC page. */
    703                 RTHCPHYS                HCPhysRsvd0;
     706                RTHCPHYS                HCPhysVirtApicPage;
    704707                /** 0x4c0 - Host physical address of the VMREAD bitmap. */
    705708                RTHCPHYS                HCPhysVmreadBitmap;
     
    814817AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR0,               0x318);
    815818AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pShadowVmcsR3,               0x320);
     819AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVirtApicPageR0,            0x328);
     820AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVirtApicPageR3,            0x330);
    816821AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmreadBitmapR0,            0x338);
    817822AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.pvVmreadBitmapR3,            0x340);
     
    833838AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.offVirtApicWrite,            0x3c0);
    834839AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fVirtNmiBlocking,            0x3c2);
     840AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.fVirtApicPageDirty,          0x3c3);
    835841AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.Msrs,                        0x3c8);
    836842AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.HCPhysVmcs,                  0x4a8);
    837843AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.HCPhysShadowVmcs,            0x4b0);
     844AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.HCPhysVirtApicPage,          0x4b8);
    838845AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.HCPhysVmreadBitmap,          0x4c0);
    839846AssertCompileMemberOffset(CPUMCTX, hwvirt.CPUM_UNION_NM(s.) vmx.HCPhysVmwriteBitmap,         0x4c8);
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