VirtualBox

Changeset 54823 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Mar 17, 2015 10:43:02 PM (10 years ago)
Author:
vboxsync
Message:

VMM: Map the hyper heap in ring-0 on 64-bit systems.

Location:
trunk/src/VBox/VMM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/Makefile.kmk

    r54819 r54823  
    6868ifdef VBOX_WITH_64ON32_CMOS_DEBUG
    6969 VMM_COMMON_DEFS += VBOX_WITH_64ON32_CMOS_DEBUG
     70endif
     71ifeq ($(KBUILD_TARGET),amd64)
     72 VMM_COMMON_DEFS += VBOX_WITH_MORE_RING0_MEM_MAPPINGS
    7073endif
    7174
  • trunk/src/VBox/VMM/VMMR3/MMHyper.cpp

    r54737 r54823  
    816816                              0 /*fFlags*/,
    817817                              &pv,
    818 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE
     818#if defined(VBOX_WITH_2X_4GB_ADDR_SPACE) || defined(VBOX_WITH_MORE_RING0_MEM_MAPPINGS)
    819819                              &pvR0,
    820820#else
     
    824824    if (RT_SUCCESS(rc))
    825825    {
    826 #ifndef VBOX_WITH_2X_4GB_ADDR_SPACE
     826#if !defined(VBOX_WITH_2X_4GB_ADDR_SPACE) && !defined(VBOX_WITH_MORE_RING0_MEM_MAPPINGS)
    827827        pvR0 = (uintptr_t)pv;
    828828#endif
     
    10121012                              0 /*fFlags*/,
    10131013                              &pvPages,
     1014#ifdef VBOX_WITH_MORE_RING0_MEM_MAPPINGS
     1015                              &pvR0,
     1016#else
    10141017                              fFlags & MMHYPER_AONR_FLAGS_KERNEL_MAPPING ? &pvR0 : NULL,
     1018#endif
    10151019                              paPages);
    10161020    if (RT_SUCCESS(rc))
    10171021    {
     1022#ifdef VBOX_WITH_MORE_RING0_MEM_MAPPINGS
     1023        Assert(pvR0 != NIL_RTR0PTR);
     1024#else
    10181025        if (!(fFlags & MMHYPER_AONR_FLAGS_KERNEL_MAPPING))
    1019 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE
     1026# ifdef VBOX_WITH_2X_4GB_ADDR_SPACE
    10201027            pvR0 = NIL_RTR0PTR;
    1021 #else
     1028# else
    10221029            pvR0 = (RTR0PTR)pvPages;
     1030# endif
    10231031#endif
    10241032
  • trunk/src/VBox/VMM/VMMR3/MMPagePool.cpp

    r52809 r54823  
    6363     */
    6464    /** @todo @bufref{1865},@bufref{3202}: mapping the page pool page into
    65      *        ring-0. Need to change the wasy we allocate it... */
     65     *        ring-0. Need to change the ways we allocate it... */
    6666    AssertReleaseReturn(sizeof(*pVM->mm.s.pPagePoolR3) + sizeof(*pVM->mm.s.pPagePoolLowR3) < PAGE_SIZE, VERR_INTERNAL_ERROR);
    6767    int rc = SUPR3PageAllocEx(1, 0 /*fFlags*/, (void **)&pVM->mm.s.pPagePoolR3, NULL /*pR0Ptr*/, NULL /*paPages*/);
  • trunk/src/VBox/VMM/VMMR3/PGMPhys.cpp

    r54820 r54823  
    15691569    void        *pvChunk      = NULL;
    15701570    int rc = SUPR3PageAllocEx(cChunkPages, 0 /*fFlags*/, &pvChunk,
    1571 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE
     1571#if defined(VBOX_WITH_MORE_RING0_MEM_MAPPINGS)
     1572                              &R0PtrChunk,
     1573#elif defined(VBOX_WITH_2X_4GB_ADDR_SPACE)
    15721574                              HMIsEnabled(pVM) ? &R0PtrChunk : NULL,
    15731575#else
     
    15771579    if (RT_SUCCESS(rc))
    15781580    {
    1579 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE
     1581#if defined(VBOX_WITH_MORE_RING0_MEM_MAPPINGS)
     1582        Assert(R0PtrChunk != NIL_RTR0PTR);
     1583#elif defined(VBOX_WITH_2X_4GB_ADDR_SPACE)
    15801584        if (!HMIsEnabled(pVM))
    15811585            R0PtrChunk = NIL_RTR0PTR;
     
    40474051                 * Flush dangling PGM pointers (R3 & R0 ptrs to GC physical addresses).
    40484052                 */
    4049                 /** todo: we should not flush chunks which include cr3 mappings. */
     4053                /** @todo We should not flush chunks which include cr3 mappings. */
    40504054                for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++)
    40514055                {
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