VirtualBox

Changeset 19771 in vbox


Ignore:
Timestamp:
May 18, 2009 10:02:27 AM (15 years ago)
Author:
vboxsync
Message:

More atomic writes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r19770 r19771  
    10851085                 GCPtrPage, pShwPdpt->GCPhys, GCPhysPdpt, (uint64_t)pPml4eSrc->u, (uint64_t)pPml4eDst->u));
    10861086        pgmPoolFreeByPage(pPool, pShwPdpt, pVCpu->pgm.s.CTX_SUFF(pShwPageCR3)->idx, iPml4);
    1087         pPml4eDst->u = 0;
     1087        ASMAtomicWriteSize(pPml4eDst, 0);
    10881088        STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDNPs));
    10891089        PGM_INVL_GUEST_TLBS();
     
    10991099                 GCPtrPage, (uint64_t)pPml4eSrc->u, (uint64_t)pPml4eDst->u));
    11001100        pgmPoolFreeByPage(pPool, pShwPdpt, pVCpu->pgm.s.CTX_SUFF(pShwPageCR3)->idx, iPml4);
    1101         pPml4eDst->u = 0;
     1101        ASMAtomicWriteSize(pPml4eDst, 0);
    11021102        STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDOutOfSync));
    11031103        PGM_INVL_GUEST_TLBS();
     
    11111111                 GCPtrPage, (uint64_t)pPml4eSrc->u, (uint64_t)pPml4eDst->u));
    11121112        pgmPoolFreeByPage(pPool, pShwPdpt, pVCpu->pgm.s.CTX_SUFF(pShwPageCR3)->idx, iPml4);
    1113         pPml4eDst->u = 0;
     1113        ASMAtomicWriteSize(pPml4eDst, 0);
    11141114        STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDNAs));
    11151115        PGM_INVL_GUEST_TLBS();
     
    11251125                    GCPtrPage, pShwPde->GCPhys, GCPhysPd, (uint64_t)PdpeSrc.u, (uint64_t)pPdpeDst->u));
    11261126        pgmPoolFreeByPage(pPool, pShwPde, pShwPdpt->idx, iPdpt);
    1127         pPdpeDst->u = 0;
     1127        ASMAtomicWriteSize(pPdpeDst, 0);
    11281128        STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDNPs));
    11291129        PGM_INVL_GUEST_TLBS();
     
    11391139                 GCPtrPage, (uint64_t)PdpeSrc.u, (uint64_t)pPdpeDst->u));
    11401140        pgmPoolFreeByPage(pPool, pShwPde, pShwPdpt->idx, iPdpt);
    1141         pPdpeDst->u = 0;
     1141        ASMAtomicWriteSize(pPdpeDst, 0);
    11421142        STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDOutOfSync));
    11431143        PGM_INVL_GUEST_TLBS();
     
    11511151                 GCPtrPage, (uint64_t)PdpeSrc.u, (uint64_t)pPdpeDst->u));
    11521152        pgmPoolFreeByPage(pPool, pShwPde, pShwPdpt->idx, iPdpt);
    1153         pPdpeDst->u = 0;
     1153        ASMAtomicWriteSize(pPdpeDst, 0);
    11541154        STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDNAs));
    11551155        PGM_INVL_GUEST_TLBS();
     
    11831183                     GCPtrPage, (uint64_t)PdeSrc.u, (uint64_t)PdeDst.u));
    11841184            pgmPoolFree(pVM, PdeDst.u & SHW_PDE_PG_MASK, pShwPde->idx, iPDDst);
    1185             pPdeDst->u = 0;
     1185            ASMAtomicWriteSize(pPdeDst, 0);
    11861186            STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDOutOfSync));
    11871187            PGM_INVL_GUEST_TLBS();
     
    11951195                     GCPtrPage, (uint64_t)PdeSrc.u, (uint64_t)PdeDst.u));
    11961196            pgmPoolFree(pVM, PdeDst.u & SHW_PDE_PG_MASK, pShwPde->idx, iPDDst);
    1197             pPdeDst->u = 0;
     1197            ASMAtomicWriteSize(pPdeDst, 0);
    11981198            STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDNAs));
    11991199            PGM_INVL_GUEST_TLBS();
     
    12391239                         GCPtrPage, (uint64_t)PdeSrc.u, (uint64_t)PdeDst.u, pShwPage->GCPhys, iPDDst));
    12401240                pgmPoolFree(pVM, PdeDst.u & SHW_PDE_PG_MASK, pShwPde->idx, iPDDst);
    1241                 pPdeDst->u = 0;
     1241                ASMAtomicWriteSize(pPdeDst, 0);
    12421242                STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDOutOfSync));
    12431243                PGM_INVL_GUEST_TLBS();
     
    12851285                     GCPtrPage, (uint64_t)PdeSrc.u, (uint64_t)PdeDst.u));
    12861286            pgmPoolFree(pVM, PdeDst.u & SHW_PDE_PG_MASK, pShwPde->idx, iPDDst);
    1287             pPdeDst->u = 0;
     1287            ASMAtomicWriteSize(pPdeDst, 0);
    12881288            STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_MID_Z(Stat,InvalidatePage4MBPages));
    12891289            PGM_INVL_BIG_PG(GCPtrPage);
     
    12981298        {
    12991299            pgmPoolFree(pVM, PdeDst.u & SHW_PDE_PG_MASK, pShwPde->idx, iPDDst);
    1300             pPdeDst->u = 0;
     1300            ASMAtomicWriteSize(pPdeDst, 0);
    13011301            STAM_COUNTER_INC(&pVCpu->pgm.s.CTX_MID_Z(Stat,InvalidatePagePDNPs));
    13021302            PGM_INVL_PG(GCPtrPage);
     
    19101910     */
    19111911    pgmPoolFreeByPage(pPool, pShwPage, pShwPde->idx, iPDDst);
    1912 
    1913     pPdeDst->u = 0;
     1912    ASMAtomicWriteSize(pPdeDst, 0);
    19141913
    19151914# if defined(IN_RC)
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