VirtualBox

Changeset 16641 in vbox for trunk/src


Ignore:
Timestamp:
Feb 10, 2009 3:50:04 PM (16 years ago)
Author:
vboxsync
Message:

VBOX_WITH_PGMPOOL_PAGING_ONLY: PAE guest mode invalidation changes

File:
1 edited

Legend:

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

    r16635 r16641  
    581581                    LogFlow(("pgmPoolMonitorChainChanging: Detected conflict at iShw=%#x!\n", iShw));
    582582                }
    583 #ifdef PGMPOOL_INVALIDATE_UPPER_SHADOW_TABLE_ENTRIES
     583#if defined(PGMPOOL_INVALIDATE_UPPER_SHADOW_TABLE_ENTRIES) || defined(VBOX_WITH_PGMPOOL_PAGING_ONLY)
    584584                /*
    585585                 * Causes trouble when the guest uses a PDE to refer to the whole page table level
     
    594594                        pgmPoolFree(pPool->CTX_SUFF(pVM),
    595595                                    uShw.pPDPae->a[iShw].u & X86_PDE_PAE_PG_MASK,
     596# ifdef VBOX_WITH_PGMPOOL_PAGING_ONLY
     597                                    pPage->idx,
     598                                    iShw);
     599# else
    596600                                    /* Note: hardcoded PAE implementation dependency */
    597601                                    (pPage->enmKind == PGMPOOLKIND_PAE_PD_FOR_PAE_PD) ? PGMPOOL_IDX_PAE_PD : pPage->idx,
    598602                                    (pPage->enmKind == PGMPOOLKIND_PAE_PD_FOR_PAE_PD) ? iShw + (pPage->idx - PGMPOOL_IDX_PAE_PD_0) * X86_PG_PAE_ENTRIES : iShw);
     603# endif
    599604                        uShw.pPDPae->a[iShw].u = 0;
    600605                    }
     
    617622                        LogFlow(("pgmPoolMonitorChainChanging: Detected conflict at iShw2=%#x!\n", iShw2));
    618623                    }
    619 #ifdef PGMPOOL_INVALIDATE_UPPER_SHADOW_TABLE_ENTRIES
     624#if defined(PGMPOOL_INVALIDATE_UPPER_SHADOW_TABLE_ENTRIES) || defined(VBOX_WITH_PGMPOOL_PAGING_ONLY)
    620625                    else if (uShw.pPDPae->a[iShw2].n.u1Present)
    621626                    {
     
    623628                        pgmPoolFree(pPool->CTX_SUFF(pVM),
    624629                                    uShw.pPDPae->a[iShw2].u & X86_PDE_PAE_PG_MASK,
     630# ifdef VBOX_WITH_PGMPOOL_PAGING_ONLY
     631                                    pPage->idx,
     632                                    iShw2);
     633# else
    625634                                    /* Note: hardcoded PAE implementation dependency */
    626635                                    (pPage->enmKind == PGMPOOLKIND_PAE_PD_FOR_PAE_PD) ? PGMPOOL_IDX_PAE_PD : pPage->idx,
    627636                                    (pPage->enmKind == PGMPOOLKIND_PAE_PD_FOR_PAE_PD) ? iShw2 + (pPage->idx - PGMPOOL_IDX_PAE_PD_0) * X86_PG_PAE_ENTRIES : iShw2);
     637# endif
    628638                        uShw.pPDPae->a[iShw2].u = 0;
    629639                    }
     
    29442954     */
    29452955    PPGMPOOLPAGE pUserPage = &pPool->aPages[pUser->iUser];
    2946 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0
     2956#if defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0) && !defined(VBOX_WITH_PGMPOOL_PAGING_ONLY)
    29472957    if (pUserPage->enmKind == PGMPOOLKIND_ROOT_PAE_PD)
    29482958    {
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