VirtualBox

Changeset 74568 in vbox for trunk


Ignore:
Timestamp:
Oct 2, 2018 6:26:37 AM (6 years ago)
Author:
vboxsync
Message:

VMM/IEM: Nested VMX: bugref:9180 VM-exit bits; Add INVLPG intercept.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h

    r74566 r74568  
    59485948    IEM_CTX_ASSERT(pVCpu, CPUMCTX_EXTRN_CR0 | CPUMCTX_EXTRN_CR3 | CPUMCTX_EXTRN_CR4 | CPUMCTX_EXTRN_EFER);
    59495949
     5950#ifdef VBOX_WITH_NESTED_HWVIRT_VMX
     5951    if (IEM_VMX_IS_PROCCTLS_SET(pVCpu, VMX_PROC_CTLS_INVLPG_EXIT))
     5952    {
     5953        Log(("invlpg: Guest intercept (%RGp) -> VM-exit\n", GCPtrPage));
     5954        iemVmxVmexitInstrInvlpg(pVCpu, GCPtrPage, cbInstr);
     5955    }
     5956#endif
     5957
    59505958    if (IEM_SVM_IS_CTRL_INTERCEPT_SET(pVCpu, SVM_CTRL_INTERCEPT_INVLPG))
    59515959    {
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h

    r74567 r74568  
    3131 *  VMX_EXIT_GETSEC
    3232 *  VMX_EXIT_INVD
    33  *  VMX_EXIT_INVLPG
    3433 *  VMX_EXIT_RDPMC
    3534 *  VMX_EXIT_RSM
     
    27432742
    27442743/**
     2744 * VMX VM-exit handler for VM-exits due to INVLPG.
     2745 *
     2746 * @param   pVCpu           The cross context virtual CPU structure.
     2747 * @param   GCPtrPage       The guest-linear address of the page being invalidated.
     2748 * @param   cbInstr         The instruction length (in bytes).
     2749 */
     2750IEM_STATIC VBOXSTRICTRC iemVmxVmexitInstrInvlpg(PVMCPU pVCpu, RTGCPTR GCPtrPage, uint8_t cbInstr)
     2751{
     2752    VMXVEXITINFO ExitInfo;
     2753    RT_ZERO(ExitInfo);
     2754    ExitInfo.uReason = VMX_EXIT_INVLPG;
     2755    ExitInfo.cbInstr = cbInstr;
     2756    ExitInfo.u64Qual = GCPtrPage;
     2757    Assert(IEM_GET_GUEST_CPU_FEATURES(pVCpu)->fLongMode || !RT_HI_U32(ExitInfo.u64Qual));
     2758
     2759    return iemVmxVmexitInstrWithInfo(pVCpu, &ExitInfo);
     2760}
     2761
     2762
     2763/**
    27452764 * Checks guest control registers, debug registers and MSRs as part of VM-entry.
    27462765 *
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