VirtualBox

Changeset 80150 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Aug 6, 2019 7:44:20 AM (5 years ago)
Author:
vboxsync
Message:

VMM: Kicking out 32-bit host support - VMX [drop VMCSCACHE]. bugref:9511

Location:
trunk/src/VBox/VMM/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/HMInternal.h

    r80080 r80150  
    665665AssertCompileMemberAlignment(HM, StatTprPatchSuccess, 8);
    666666
    667 /* Maximum number of cached entries. */
    668 #define VMX_VMCS_CACHE_MAX_ENTRY                    128
    669 
    670 /**
    671  * Cache of a VMCS for batch reads or writes.
    672  */
    673 typedef struct VMXVMCSCACHE
    674 {
    675 #ifdef VBOX_WITH_CRASHDUMP_MAGIC
    676     /* Magic marker for searching in crash dumps. */
    677     uint8_t         aMagic[16];
    678     uint64_t        uMagic;
    679     uint64_t        u64TimeEntry;
    680     uint64_t        u64TimeSwitch;
    681     uint64_t        cResume;
    682     uint64_t        interPD;
    683     uint64_t        pSwitcher;
    684     uint32_t        uPos;
    685     uint32_t        idCpu;
    686 #endif
    687     /* CR2 is saved here for EPT syncing. */
    688     uint64_t        cr2;
    689     struct
    690     {
    691         uint32_t    cValidEntries;
    692         uint32_t    uAlignment;
    693         uint32_t    aField[VMX_VMCS_CACHE_MAX_ENTRY];
    694         uint64_t    aFieldVal[VMX_VMCS_CACHE_MAX_ENTRY];
    695     } Write;
    696     struct
    697     {
    698         uint32_t    cValidEntries;
    699         uint32_t    uAlignment;
    700         uint32_t    aField[VMX_VMCS_CACHE_MAX_ENTRY];
    701         uint64_t    aFieldVal[VMX_VMCS_CACHE_MAX_ENTRY];
    702     } Read;
    703 #ifdef VBOX_STRICT
    704     struct
    705     {
    706         RTHCPHYS    HCPhysCpuPage;
    707         RTHCPHYS    HCPhysVmcs;
    708         RTGCPTR     pCache;
    709         RTGCPTR     pCtx;
    710     } TestIn;
    711     struct
    712     {
    713         RTHCPHYS    HCPhysVmcs;
    714         RTGCPTR     pCache;
    715         RTGCPTR     pCtx;
    716         uint64_t    eflags;
    717         uint64_t    cr8;
    718     } TestOut;
    719     struct
    720     {
    721         uint64_t    param1;
    722         uint64_t    param2;
    723         uint64_t    param3;
    724         uint64_t    param4;
    725     } ScratchPad;
    726 #endif
    727 } VMXVMCSCACHE;
    728 /** Pointer to VMXVMCSCACHE. */
    729 typedef VMXVMCSCACHE *PVMXVMCSCACHE;
    730 AssertCompileSizeAlignment(VMXVMCSCACHE, 8);
    731 
    732667/**
    733668 * VMX StartVM function.
     
    736671 * @param   fResume     Whether to use VMRESUME (true) or VMLAUNCH (false).
    737672 * @param   pCtx        The CPU register context.
    738  * @param   pVmcsCache  The VMCS batch cache.
     673 * @param   pvUnused    Unused argument.
    739674 * @param   pVM         Pointer to the cross context VM structure.
    740675 * @param   pVCpu       Pointer to the cross context per-CPU structure.
    741676 */
    742 typedef DECLCALLBACK(int) FNHMVMXSTARTVM(RTHCUINT fResume, PCPUMCTX pCtx, PVMXVMCSCACHE pVmcsCache, PVM pVM, PVMCPU pVCpu);
     677typedef DECLCALLBACK(int) FNHMVMXSTARTVM(RTHCUINT fResume, PCPUMCTX pCtx, void *pvUnused, PVM pVM, PVMCPU pVCpu);
    743678/** Pointer to a VMX StartVM function. */
    744679typedef R0PTRTYPE(FNHMVMXSTARTVM *) PFNHMVMXSTARTVM;
     
    986921            /** Cached guest APIC-base MSR for identifying when to map the APIC-access page. */
    987922            uint64_t                    u64GstMsrApicBase;
    988             /** VMCS cache for batched vmread/vmwrites. */
    989             VMXVMCSCACHE                VmcsCache;
    990923            PGMPAGEMAPLOCK              PgMapLockVirtApic;
    991924            /** @} */
     
    12551188
    12561189# ifdef VBOX_WITH_KERNEL_USING_XMM
    1257 DECLASM(int)                hmR0VMXStartVMWrapXMM(RTHCUINT fResume, PCPUMCTX pCtx, PVMXVMCSCACHE pVmcsCache, PVM pVM,
    1258                                                   PVMCPU pVCpu, PFNHMVMXSTARTVM pfnStartVM);
     1190DECLASM(int)                hmR0VMXStartVMWrapXMM(RTHCUINT fResume, PCPUMCTX pCtx, void *pvUnused, PVM pVM, PVMCPU pVCpu,
     1191                                                  PFNHMVMXSTARTVM pfnStartVM);
    12591192DECLASM(int)                hmR0SVMRunWrapXMM(RTHCPHYS pVmcbHostPhys, RTHCPHYS pVmcbPhys, PCPUMCTX pCtx, PVM pVM, PVMCPU pVCpu,
    12601193                                              PFNHMSVMVMRUN pfnVMRun);
  • trunk/src/VBox/VMM/include/HMInternal.mac

    r80078 r80150  
    1515; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
    1616;
    17 
    18 ;Maximum number of cached entries.
    19 %define VMX_VMCS_CACHE_MAX_ENTRY                             128
    20 
    21 ; Structure for storing read and write VMCS actions.
    22 struc VMXVMCSCACHE
    23 %ifdef VBOX_WITH_CRASHDUMP_MAGIC
    24     .aMagic                   resb    16
    25     .uMagic                   resq    1
    26     .u64TimeEntry             resq    1
    27     .u64TimeSwitch            resq    1
    28     .cResume                  resq    1
    29     .interPD                  resq    1
    30     .pSwitcher                resq    1
    31     .uPos                     resd    1
    32     .idCpu                    resd    1
    33 %endif
    34     .cr2                      resq    1
    35     .Write.cValidEntries      resd    1
    36     .Write.uAlignment         resd    1
    37     .Write.aField             resd    VMX_VMCS_CACHE_MAX_ENTRY
    38     .Write.aFieldVal          resq    VMX_VMCS_CACHE_MAX_ENTRY
    39     .Read.cValidEntries       resd    1
    40     .Read.uAlignment          resd    1
    41     .Read.aField              resd    VMX_VMCS_CACHE_MAX_ENTRY
    42     .Read.aFieldVal           resq    VMX_VMCS_CACHE_MAX_ENTRY
    43 %ifdef VBOX_STRICT
    44     .TestIn.HCPhysCpuPage     resq    1
    45     .TestIn.HCPhysVmcs        resq    1
    46     .TestIn.pCache            resq    1
    47     .TestIn.pCtx              resq    1
    48     .TestOut.HCPhysVmcs       resq    1
    49     .TestOut.pCache           resq    1
    50     .TestOut.pCtx             resq    1
    51     .TestOut.eflags           resq    1
    52     .TestOut.cr8              resq    1
    53     .ScratchPad.param1        resq    1
    54     .ScratchPad.param2        resq    1
    55     .ScratchPad.param3        resq    1
    56     .ScratchPad.param4        resq    1
    57 %endif
    58 endstruc
    5917
    6018struc HMCPU
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