VirtualBox

Changeset 79430 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jul 1, 2019 6:01:52 AM (6 years ago)
Author:
vboxsync
Message:

VMM/HMVMXR0: Nested VMX: bugref:9180 Add todo regarding failed attempt at mapping the HC APIC-access page from ring-3.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r79402 r79430  
    1095810958    Log4Func(("Mappping HC APIC-access page at %#RGp\n", GCPhysApicBase));
    1095910959
    10960     /* Unalias any existing mapping. */
     10960    /* Unalias the existing mapping. */
    1096110961    int rc = PGMHandlerPhysicalReset(pVM, GCPhysApicBase);
    1096210962    AssertRCReturn(rc, rc);
     
    1139811398     * Virtualize memory-mapped accesses to the physical APIC (may take locks).
    1139911399     */
     11400    /** @todo Doing this from ring-3 after VM setup phase causes a
     11401     *        VERR_IOM_MMIO_RANGE_NOT_FOUND guru while booting Visa 64 SMP VM. No
     11402     *        idea why atm. */
    1140011403    PVM pVM = pVCpu->CTX_SUFF(pVM);
    1140111404    if (   !pVCpu->hm.s.vmx.u64GstMsrApicBase
     
    1550215505
    1550315506    /* See Intel spec. 27-6 "Exit Qualifications for APIC-access VM-exits from Linear Accesses & Guest-Phyiscal Addresses" */
    15504     uint32_t uAccessType = VMX_EXIT_QUAL_APIC_ACCESS_TYPE(pVmxTransient->uExitQual);
     15507    uint32_t const uAccessType = VMX_EXIT_QUAL_APIC_ACCESS_TYPE(pVmxTransient->uExitQual);
    1550515508    VBOXSTRICTRC rcStrict2;
    1550615509    switch (uAccessType)
     
    1551615519            GCPhys &= PAGE_BASE_GC_MASK;
    1551715520            GCPhys += VMX_EXIT_QUAL_APIC_ACCESS_OFFSET(pVmxTransient->uExitQual);
    15518             PVM pVM = pVCpu->CTX_SUFF(pVM);
    1551915521            Log4Func(("Linear access uAccessType=%#x GCPhys=%#RGp Off=%#x\n", uAccessType, GCPhys,
    1552015522                 VMX_EXIT_QUAL_APIC_ACCESS_OFFSET(pVmxTransient->uExitQual)));
    1552115523
     15524            PVM      pVM  = pVCpu->CTX_SUFF(pVM);
    1552215525            PCPUMCTX pCtx = &pVCpu->cpum.GstCtx;
    1552315526            rcStrict2 = IOMMMIOPhysHandler(pVM, pVCpu,
     
    1553715540
    1553815541        default:
     15542        {
    1553915543            Log4Func(("uAccessType=%#x\n", uAccessType));
    1554015544            rcStrict2 = VINF_EM_RAW_EMULATE_INSTR;
    1554115545            break;
     15546        }
    1554215547    }
    1554315548
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