VirtualBox

Changeset 46901 in vbox


Ignore:
Timestamp:
Jul 2, 2013 12:21:20 PM (12 years ago)
Author:
vboxsync
Message:

VMM/HMSVMR0: No lazy CR3, PAE PDPE updating necessary on AMD-V.

File:
1 edited

Legend:

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

    r46900 r46901  
    24542454    Assert(VMMRZCallRing3IsEnabled(pVCpu));
    24552455
     2456    /* On AMD-V we don't need to update CR3, PAE PDPES lazily. See hmR0SvmSaveGuestState(). */
     2457    Assert(!VMCPU_FF_IS_PENDING(pVCpu, VMCPU_FF_HM_UPDATE_CR3));
     2458    Assert(!VMCPU_FF_IS_PENDING(pVCpu, VMCPU_FF_HM_UPDATE_PAE_PDPES));
     2459
    24562460    if (   VM_FF_IS_PENDING(pVM, VM_FF_HM_TO_R3_MASK | VM_FF_REQUEST | VM_FF_PGM_POOL_FLUSH_PENDING | VM_FF_PDM_DMA)
    2457         || VMCPU_FF_IS_PENDING(pVCpu, VMCPU_FF_HM_TO_R3_MASK | VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL
    2458                                | VMCPU_FF_REQUEST | VMCPU_FF_HM_UPDATE_CR3))
    2459     {
    2460         /* Pending HM CR3 sync. No PAE PDPEs (VMCPU_FF_HM_UPDATE_PAE_PDPES) on AMD-V. */
    2461         if (VMCPU_FF_IS_PENDING(pVCpu, VMCPU_FF_HM_UPDATE_CR3))
    2462         {
    2463             int rc = PGMUpdateCR3(pVCpu, pCtx->cr3);
    2464             Assert(rc == VINF_SUCCESS || rc == VINF_PGM_SYNC_CR3);
    2465             Assert(!VMCPU_FF_IS_PENDING(pVCpu, VMCPU_FF_HM_UPDATE_CR3));
    2466         }
    2467 
     2461        || VMCPU_FF_IS_PENDING(pVCpu,   VMCPU_FF_HM_TO_R3_MASK | VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL
     2462                                      | VMCPU_FF_REQUEST))
     2463    {
    24682464        /* Pending PGM C3 sync. */
    24692465        if (VMCPU_FF_IS_PENDING(pVCpu,VMCPU_FF_PGM_SYNC_CR3 | VMCPU_FF_PGM_SYNC_CR3_NON_GLOBAL))
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