VirtualBox

Changeset 35005 in vbox


Ignore:
Timestamp:
Dec 13, 2010 1:26:48 PM (14 years ago)
Author:
vboxsync
Message:

Fixed massive performance regression for nested paging with 32-bit SMP guests

File:
1 edited

Legend:

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

    r34958 r35005  
    34833483        AssertRC(rc2);
    34843484        Log(("VMX_EXIT_EPT_MISCONFIG for %RGp\n", GCPhys));
     3485
     3486        /* Shortcut for APIC TPR reads and writes. */
     3487        if (    (GCPhys & 0xfff) == 0x080
     3488            &&  GCPhys > 0x1000000   /* to skip VGA frame buffer accesses */
     3489            &&  fSetupTPRCaching
     3490            &&  (pVM->hwaccm.s.vmx.msr.vmx_proc_ctls2.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC2_VIRT_APIC))
     3491        {
     3492            RTGCPHYS GCPhysApicBase;
     3493            PDMApicGetBase(pVM, &GCPhysApicBase);   /* @todo cache this */
     3494            GCPhysApicBase &= PAGE_BASE_GC_MASK;
     3495            if (GCPhys == GCPhysApicBase + 0x80)
     3496            {
     3497                Log(("Enable VT-x virtual APIC access filtering\n"));
     3498                rc2 = IOMMMIOMapMMIOHCPage(pVM, GCPhysApicBase, pVM->hwaccm.s.vmx.pAPICPhys, X86_PTE_RW | X86_PTE_P);
     3499                AssertRC(rc2);
     3500            }
     3501        }
    34853502
    34863503        rc = PGMR0Trap0eHandlerNPMisconfig(pVM, pVCpu, PGMMODE_EPT, CPUMCTX2CORE(pCtx), GCPhys, UINT32_MAX);
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