VirtualBox

Changeset 65476 in vbox


Ignore:
Timestamp:
Jan 27, 2017 9:04:48 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
113102
Message:

PGM: Backed out r113094, r113095, r113096, r113097 & r113098.

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

Legend:

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

    r65471 r65476  
    54775477        pPage->iMonitoredNext = NIL_PGMPOOL_IDX;
    54785478        pPage->iMonitoredPrev = NIL_PGMPOOL_IDX;
     5479        pPage->cModifications = 0;
    54795480        pPage->GCPhys     = NIL_RTGCPHYS;
    54805481        pPage->enmKind    = PGMPOOLKIND_FREE;
     
    54905491        pPage->fReusedFlushPending = false;
    54915492        pPage->iUserHead  = NIL_PGMPOOL_USER_INDEX;
    5492         pPage->cPresent = 0;
    5493         pPage->iFirstPresent = NIL_PGMPOOL_PRESENT_INDEX;
    5494         pPage->cModifications = 0;
    54955493        pPage->iAgeNext   = NIL_PGMPOOL_IDX;
    54965494        pPage->iAgePrev   = NIL_PGMPOOL_IDX;
    5497         pPage->idxDirtyEntry = 0;
    54985495        pPage->GCPtrLastAccessHandlerRip = NIL_RTGCPTR;
    54995496        pPage->GCPtrLastAccessHandlerFault = NIL_RTGCPTR;
  • trunk/src/VBox/VMM/VMMR3/PGM.cpp

    r65472 r65476  
    22732273        rc = pgmR3PhysRamPreAllocate(pVM);
    22742274
    2275     //pgmLogState(pVM);
    22762275    LogRel(("PGM: PGMR3InitFinalize: 4 MB PSE mask %RGp\n", pVM->pgm.s.GCPhys4MBPSEMask));
    22772276    return rc;
     
    25492548    int rc = PGM_GST_PFN(Exit, pVCpu)(pVCpu);
    25502549    AssertRC(rc);
    2551     pVCpu->pgm.s.GCPhysCR3 = NIL_RTGCPHYS;
    25522550
    25532551    rc = PGMR3ChangeMode(pVM, pVCpu, PGMMODE_REAL);
     
    26042602        int rc = PGM_GST_PFN(Exit, pVCpu)(pVCpu);
    26052603        AssertReleaseRC(rc);
    2606         pVCpu->pgm.s.GCPhysCR3 = NIL_RTGCPHYS;
    26072604    }
    26082605
     
    26572654    }
    26582655
    2659     //pgmLogState(pVM);
    26602656    pgmUnlock(pVM);
    26612657}
     
    35163512        }
    35173513    }
    3518     pVCpu->pgm.s.GCPhysCR3 = NIL_RTGCPHYS;
    35193514
    35203515    /*
     
    37433738    int rc = PGM_BTH_PFN(UnmapCR3, pVCpu)(pVCpu);
    37443739    AssertRC(rc);
    3745     pVCpu->pgm.s.GCPhysCR3 = NIL_RTGCPHYS;
    37463740
    37473741    /* Exit the current shadow paging mode as well; nested paging and EPT use a root CR3 which will get flushed here. */
  • trunk/src/VBox/VMM/VMMR3/PGMDbg.cpp

    r65472 r65476  
    24782478}
    24792479
    2480 
    2481 /**
    2482  * For aiding with reset problems and similar.
    2483  *
    2484  * @param   pVM                 The cross context VM handle.
    2485  */
    2486 void pgmLogState(PVM pVM)
    2487 {
    2488 #if 0
    2489     RTLogRelPrintf("\npgmLogState pgmLogState pgmLogState pgmLogState pgmLogState\n");
    2490 
    2491     /*
    2492      * Per CPU stuff.
    2493      */
    2494     for (VMCPUID iCpu = 0; iCpu < pVM->cCpus; iCpu++)
    2495     {
    2496         PPGMCPU pPgmCpu = &pVM->aCpus[iCpu].pgm.s;
    2497         RTLogRelPrintf("pgmLogState: CPU #%u\n", iCpu);
    2498 # define LOG_PGMCPU_MEMBER(aFmt, aMember) RTLogRelPrintf(" %32s: %" aFmt "\n", #aMember, pPgmCpu->aMember)
    2499         LOG_PGMCPU_MEMBER("#RX32",  offVM);
    2500         LOG_PGMCPU_MEMBER("#RX32",  offVCpu);
    2501         LOG_PGMCPU_MEMBER("#RX32",  offPGM);
    2502         LOG_PGMCPU_MEMBER("RGp",    GCPhysA20Mask);
    2503         LOG_PGMCPU_MEMBER("RTbool", fA20Enabled);
    2504         LOG_PGMCPU_MEMBER("RTbool", fNoExecuteEnabled);
    2505         LOG_PGMCPU_MEMBER("#RX32",  fSyncFlags);
    2506         LOG_PGMCPU_MEMBER("d",      enmShadowMode);
    2507         LOG_PGMCPU_MEMBER("d",      enmGuestMode);
    2508         LOG_PGMCPU_MEMBER("RGp",    GCPhysCR3);
    2509 
    2510         LOG_PGMCPU_MEMBER("p",      pGst32BitPdR3);
    2511 # ifndef VBOX_WITH_2X_4GB_ADDR_SPACE
    2512         LOG_PGMCPU_MEMBER("p",      pGst32BitPdR0);
    2513 # endif
    2514         LOG_PGMCPU_MEMBER("RRv",    pGst32BitPdRC);
    2515         LOG_PGMCPU_MEMBER("#RX32",  fGst32BitMbzBigPdeMask);
    2516         LOG_PGMCPU_MEMBER("RTbool", fGst32BitPageSizeExtension);
    2517 
    2518         LOG_PGMCPU_MEMBER("p",      pGstPaePdptR3);
    2519 # ifndef VBOX_WITH_2X_4GB_ADDR_SPACE
    2520         LOG_PGMCPU_MEMBER("p",      pGstPaePdptR0);
    2521 # endif
    2522         LOG_PGMCPU_MEMBER("RRv",    pGstPaePdptRC);
    2523         LOG_PGMCPU_MEMBER("p",      apGstPaePDsR3[0]);
    2524         LOG_PGMCPU_MEMBER("p",      apGstPaePDsR3[1]);
    2525         LOG_PGMCPU_MEMBER("p",      apGstPaePDsR3[2]);
    2526         LOG_PGMCPU_MEMBER("p",      apGstPaePDsR3[3]);
    2527 # ifndef VBOX_WITH_2X_4GB_ADDR_SPACE
    2528         LOG_PGMCPU_MEMBER("p",      apGstPaePDsR0[0]);
    2529         LOG_PGMCPU_MEMBER("p",      apGstPaePDsR0[1]);
    2530         LOG_PGMCPU_MEMBER("p",      apGstPaePDsR0[2]);
    2531         LOG_PGMCPU_MEMBER("p",      apGstPaePDsR0[3]);
    2532 # endif
    2533         LOG_PGMCPU_MEMBER("RRv",    apGstPaePDsR0[0]);
    2534         LOG_PGMCPU_MEMBER("RRv",    apGstPaePDsR0[1]);
    2535         LOG_PGMCPU_MEMBER("RRv",    apGstPaePDsR0[2]);
    2536         LOG_PGMCPU_MEMBER("RRv",    apGstPaePDsR0[3]);
    2537         LOG_PGMCPU_MEMBER("RGp",    aGCPhysGstPaePDs[0]);
    2538         LOG_PGMCPU_MEMBER("RGp",    aGCPhysGstPaePDs[1]);
    2539         LOG_PGMCPU_MEMBER("RGp",    aGCPhysGstPaePDs[2]);
    2540         LOG_PGMCPU_MEMBER("RGp",    aGCPhysGstPaePDs[3]);
    2541         LOG_PGMCPU_MEMBER("#RX64",  aGstPaePdpeRegs[0].u);
    2542         LOG_PGMCPU_MEMBER("#RX64",  aGstPaePdpeRegs[1].u);
    2543         LOG_PGMCPU_MEMBER("#RX64",  aGstPaePdpeRegs[2].u);
    2544         LOG_PGMCPU_MEMBER("#RX64",  aGstPaePdpeRegs[3].u);
    2545         LOG_PGMCPU_MEMBER("RGp",    aGCPhysGstPaePDsMonitored[0]);
    2546         LOG_PGMCPU_MEMBER("RGp",    aGCPhysGstPaePDsMonitored[1]);
    2547         LOG_PGMCPU_MEMBER("RGp",    aGCPhysGstPaePDsMonitored[2]);
    2548         LOG_PGMCPU_MEMBER("RGp",    aGCPhysGstPaePDsMonitored[3]);
    2549         LOG_PGMCPU_MEMBER("#RX64",  fGstPaeMbzPteMask);
    2550         LOG_PGMCPU_MEMBER("#RX64",  fGstPaeMbzPdeMask);
    2551         LOG_PGMCPU_MEMBER("#RX64",  fGstPaeMbzBigPdeMask);
    2552         LOG_PGMCPU_MEMBER("#RX64",  fGstPaeMbzBigPdeMask);
    2553         LOG_PGMCPU_MEMBER("#RX64",  fGstPaeMbzPdpeMask);
    2554 
    2555         LOG_PGMCPU_MEMBER("p",      pGstAmd64Pml4R3);
    2556 # ifndef VBOX_WITH_2X_4GB_ADDR_SPACE
    2557         LOG_PGMCPU_MEMBER("p",      pGstAmd64Pml4R0);
    2558 # endif
    2559         LOG_PGMCPU_MEMBER("#RX64",  fGstAmd64MbzPteMask);
    2560         LOG_PGMCPU_MEMBER("#RX64",  fGstAmd64MbzPdeMask);
    2561         LOG_PGMCPU_MEMBER("#RX64",  fGstAmd64MbzBigPdeMask);
    2562         LOG_PGMCPU_MEMBER("#RX64",  fGstAmd64MbzPdpeMask);
    2563         LOG_PGMCPU_MEMBER("#RX64",  fGstAmd64MbzBigPdpeMask);
    2564         LOG_PGMCPU_MEMBER("#RX64",  fGstAmd64MbzPml4eMask);
    2565         LOG_PGMCPU_MEMBER("#RX64",  fGstAmd64ShadowedPdpeMask);
    2566         LOG_PGMCPU_MEMBER("#RX64",  fGstAmd64ShadowedPml4eMask);
    2567         LOG_PGMCPU_MEMBER("#RX64",  fGst64ShadowedPteMask);
    2568         LOG_PGMCPU_MEMBER("#RX64",  fGst64ShadowedPdeMask);
    2569         LOG_PGMCPU_MEMBER("#RX64",  fGst64ShadowedBigPdeMask);
    2570         LOG_PGMCPU_MEMBER("#RX64",  fGst64ShadowedBigPde4PteMask);
    2571 
    2572         LOG_PGMCPU_MEMBER("p",      pShwPageCR3R3);
    2573         LOG_PGMCPU_MEMBER("p",      pShwPageCR3R0);
    2574         LOG_PGMCPU_MEMBER("RRv",    pShwPageCR3RC);
    2575 
    2576         LOG_PGMCPU_MEMBER("p",      pfnR3ShwRelocate);
    2577         LOG_PGMCPU_MEMBER("p",      pfnR3ShwExit);
    2578         LOG_PGMCPU_MEMBER("p",      pfnR3ShwGetPage);
    2579         LOG_PGMCPU_MEMBER("p",      pfnR3ShwModifyPage);
    2580         LOG_PGMCPU_MEMBER("p",      pfnR0ShwGetPage);
    2581         LOG_PGMCPU_MEMBER("p",      pfnR0ShwModifyPage);
    2582         LOG_PGMCPU_MEMBER("p",      pfnR3GstRelocate);
    2583         LOG_PGMCPU_MEMBER("p",      pfnR3GstExit);
    2584         LOG_PGMCPU_MEMBER("p",      pfnR3GstGetPage);
    2585         LOG_PGMCPU_MEMBER("p",      pfnR3GstModifyPage);
    2586         LOG_PGMCPU_MEMBER("p",      pfnR0GstGetPage);
    2587         LOG_PGMCPU_MEMBER("p",      pfnR0GstModifyPage);
    2588         LOG_PGMCPU_MEMBER("p",      pfnR3BthRelocate);
    2589         LOG_PGMCPU_MEMBER("p",      pfnR3BthInvalidatePage);
    2590         LOG_PGMCPU_MEMBER("p",      pfnR3BthSyncCR3);
    2591         LOG_PGMCPU_MEMBER("p",      pfnR3BthPrefetchPage);
    2592         LOG_PGMCPU_MEMBER("p",      pfnR3BthMapCR3);
    2593         LOG_PGMCPU_MEMBER("p",      pfnR3BthUnmapCR3);
    2594         LOG_PGMCPU_MEMBER("p",      pfnR0BthMapCR3);
    2595         LOG_PGMCPU_MEMBER("p",      pfnR0BthUnmapCR3);
    2596         LOG_PGMCPU_MEMBER("#RX64",  cNetwareWp0Hacks);
    2597         LOG_PGMCPU_MEMBER("#RX64",  cPoolAccessHandler);
    2598 
    2599     }
    2600 
    2601     /*
    2602      * PGM globals.
    2603      */
    2604     RTLogRelPrintf("PGM globals\n");
    2605     PPGM pPgm = &pVM->pgm.s;
    2606 # define LOG_PGM_MEMBER(aFmt, aMember) RTLogRelPrintf(" %32s: %" aFmt "\n", #aMember, pPgm->aMember)
    2607     LOG_PGM_MEMBER("#RX32",         offVM);
    2608     LOG_PGM_MEMBER("#RX32",         offVCpuPGM);
    2609     LOG_PGM_MEMBER("RTbool",        fRamPreAlloc);
    2610     LOG_PGM_MEMBER("RTbool",        fPhysWriteMonitoringEngaged);
    2611     LOG_PGM_MEMBER("RTbool",        fLessThan52PhysicalAddressBits);
    2612     LOG_PGM_MEMBER("RTbool",        fNestedPaging);
    2613     LOG_PGM_MEMBER("d",             enmHostMode);
    2614     LOG_PGM_MEMBER("RTbool",        fNoMorePhysWrites);
    2615     LOG_PGM_MEMBER("RTbool",        fPageFusionAllowed);
    2616     LOG_PGM_MEMBER("RTbool",        fPciPassthrough);
    2617     LOG_PGM_MEMBER("#x",            cMmio2Regions);
    2618     LOG_PGM_MEMBER("RTbool",        fRestoreRomPagesOnReset);
    2619     LOG_PGM_MEMBER("RTbool",        fZeroRamPagesOnReset);
    2620     LOG_PGM_MEMBER("RTbool",        fFinalizedMappings);
    2621     LOG_PGM_MEMBER("RTbool",        fMappingsFixed);
    2622     LOG_PGM_MEMBER("RTbool",        fMappingsFixedRestored);
    2623     LOG_PGM_MEMBER("%#x",           cbMappingFixed);
    2624     LOG_PGM_MEMBER("%#x",           idRamRangesGen);
    2625     LOG_PGM_MEMBER("#RGv",          GCPtrMappingFixed);
    2626     LOG_PGM_MEMBER("#RGv",          GCPtrPrevRamRangeMapping);
    2627     LOG_PGM_MEMBER("%#x",           hRomPhysHandlerType);
    2628     LOG_PGM_MEMBER("#RGp",          GCPhys4MBPSEMask);
    2629     LOG_PGM_MEMBER("#RGp",          GCPhysInvAddrMask);
    2630     LOG_PGM_MEMBER("p",             apRamRangesTlbR3[0]);
    2631     LOG_PGM_MEMBER("p",             apRamRangesTlbR3[1]);
    2632     LOG_PGM_MEMBER("p",             apRamRangesTlbR3[2]);
    2633     LOG_PGM_MEMBER("p",             apRamRangesTlbR3[3]);
    2634     LOG_PGM_MEMBER("p",             apRamRangesTlbR3[4]);
    2635     LOG_PGM_MEMBER("p",             apRamRangesTlbR3[5]);
    2636     LOG_PGM_MEMBER("p",             apRamRangesTlbR3[6]);
    2637     LOG_PGM_MEMBER("p",             apRamRangesTlbR3[7]);
    2638     LOG_PGM_MEMBER("p",             pRamRangesXR3);
    2639     LOG_PGM_MEMBER("p",             pRamRangeTreeR3);
    2640     LOG_PGM_MEMBER("p",             pTreesR3);
    2641     LOG_PGM_MEMBER("p",             pLastPhysHandlerR3);
    2642     LOG_PGM_MEMBER("p",             pPoolR3);
    2643     LOG_PGM_MEMBER("p",             pMappingsR3);
    2644     LOG_PGM_MEMBER("p",             pRomRangesR3);
    2645     LOG_PGM_MEMBER("p",             pRegMmioRangesR3);
    2646     LOG_PGM_MEMBER("p",             paModeData);
    2647     LOG_PGM_MEMBER("p",             apMmio2RangesR3[0]);
    2648     LOG_PGM_MEMBER("p",             apMmio2RangesR3[1]);
    2649     LOG_PGM_MEMBER("p",             apMmio2RangesR3[2]);
    2650     LOG_PGM_MEMBER("p",             apMmio2RangesR3[3]);
    2651     LOG_PGM_MEMBER("p",             apMmio2RangesR3[4]);
    2652     LOG_PGM_MEMBER("p",             apMmio2RangesR3[5]);
    2653     LOG_PGM_MEMBER("p",             apRamRangesTlbR0[0]);
    2654     LOG_PGM_MEMBER("p",             apRamRangesTlbR0[1]);
    2655     LOG_PGM_MEMBER("p",             apRamRangesTlbR0[2]);
    2656     LOG_PGM_MEMBER("p",             apRamRangesTlbR0[3]);
    2657     LOG_PGM_MEMBER("p",             apRamRangesTlbR0[4]);
    2658     LOG_PGM_MEMBER("p",             apRamRangesTlbR0[5]);
    2659     LOG_PGM_MEMBER("p",             apRamRangesTlbR0[6]);
    2660     LOG_PGM_MEMBER("p",             apRamRangesTlbR0[7]);
    2661     LOG_PGM_MEMBER("p",             pRamRangesXR0);
    2662     LOG_PGM_MEMBER("p",             pRamRangeTreeR0);
    2663     LOG_PGM_MEMBER("p",             pTreesR0);
    2664     LOG_PGM_MEMBER("p",             pLastPhysHandlerR0);
    2665     LOG_PGM_MEMBER("p",             pPoolR0);
    2666     LOG_PGM_MEMBER("p",             pMappingsR0);
    2667     LOG_PGM_MEMBER("p",             pRomRangesR0);
    2668     LOG_PGM_MEMBER("p",             apMmio2RangesR0[0]);
    2669     LOG_PGM_MEMBER("p",             apMmio2RangesR0[1]);
    2670     LOG_PGM_MEMBER("p",             apMmio2RangesR0[2]);
    2671     LOG_PGM_MEMBER("p",             apMmio2RangesR0[3]);
    2672     LOG_PGM_MEMBER("p",             apMmio2RangesR0[4]);
    2673     LOG_PGM_MEMBER("p",             apMmio2RangesR0[5]);
    2674     LOG_PGM_MEMBER("RRv",           apRamRangesTlbRC[0]);
    2675     LOG_PGM_MEMBER("RRv",           apRamRangesTlbRC[1]);
    2676     LOG_PGM_MEMBER("RRv",           apRamRangesTlbRC[2]);
    2677     LOG_PGM_MEMBER("RRv",           apRamRangesTlbRC[3]);
    2678     LOG_PGM_MEMBER("RRv",           apRamRangesTlbRC[4]);
    2679     LOG_PGM_MEMBER("RRv",           apRamRangesTlbRC[5]);
    2680     LOG_PGM_MEMBER("RRv",           apRamRangesTlbRC[6]);
    2681     LOG_PGM_MEMBER("RRv",           apRamRangesTlbRC[7]);
    2682     LOG_PGM_MEMBER("RRv",           pRamRangesXRC);
    2683     LOG_PGM_MEMBER("RRv",           pRamRangeTreeRC);
    2684     LOG_PGM_MEMBER("RRv",           pTreesRC);
    2685     LOG_PGM_MEMBER("RRv",           pLastPhysHandlerRC);
    2686     LOG_PGM_MEMBER("RRv",           pPoolRC);
    2687     LOG_PGM_MEMBER("RRv",           pMappingsRC);
    2688     LOG_PGM_MEMBER("RRv",           pRomRangesRC);
    2689     LOG_PGM_MEMBER("RRv",           paDynPageMap32BitPTEsGC);
    2690     LOG_PGM_MEMBER("RRv",           paDynPageMapPaePTEsGC);
    2691 
    2692     LOG_PGM_MEMBER("#RGv",          GCPtrCR3Mapping);
    2693     LOG_PGM_MEMBER("p",             pInterPD);
    2694     LOG_PGM_MEMBER("p",             apInterPTs[0]);
    2695     LOG_PGM_MEMBER("p",             apInterPTs[1]);
    2696     LOG_PGM_MEMBER("p",             apInterPaePTs[0]);
    2697     LOG_PGM_MEMBER("p",             apInterPaePTs[1]);
    2698     LOG_PGM_MEMBER("p",             apInterPaePDs[0]);
    2699     LOG_PGM_MEMBER("p",             apInterPaePDs[1]);
    2700     LOG_PGM_MEMBER("p",             apInterPaePDs[2]);
    2701     LOG_PGM_MEMBER("p",             apInterPaePDs[3]);
    2702     LOG_PGM_MEMBER("p",             pInterPaePDPT);
    2703     LOG_PGM_MEMBER("p",             pInterPaePML4);
    2704     LOG_PGM_MEMBER("p",             pInterPaePDPT64);
    2705     LOG_PGM_MEMBER("#RHp",          HCPhysInterPD);
    2706     LOG_PGM_MEMBER("#RHp",          HCPhysInterPaePDPT);
    2707     LOG_PGM_MEMBER("#RHp",          HCPhysInterPaePML4);
    2708     LOG_PGM_MEMBER("RRv",           pbDynPageMapBaseGC);
    2709     LOG_PGM_MEMBER("RRv",           pRCDynMap);
    2710     LOG_PGM_MEMBER("p",             pvR0DynMapUsed);
    2711     LOG_PGM_MEMBER("%#x",           cDeprecatedPageLocks);
    2712 
    2713     /**
    2714      * Data associated with managing the ring-3 mappings of the allocation chunks.
    2715      */
    2716     LOG_PGM_MEMBER("p",             ChunkR3Map.pTree);
    2717     //LOG_PGM_MEMBER(PGMCHUNKR3MAPTLB ChunkR3Map.Tlb);
    2718     LOG_PGM_MEMBER("%#x",           ChunkR3Map.c);
    2719     LOG_PGM_MEMBER("%#x",           ChunkR3Map.cMax);
    2720     LOG_PGM_MEMBER("%#x",           ChunkR3Map.iNow);
    2721     //LOG_PGM_MEMBER(PGMPAGER3MAPTLB  PhysTlbHC);
    2722 
    2723     LOG_PGM_MEMBER("#RHp",          HCPhysZeroPg);
    2724     LOG_PGM_MEMBER("p",             pvZeroPgR3);
    2725     LOG_PGM_MEMBER("p",             pvZeroPgR0);
    2726     LOG_PGM_MEMBER("RRv",           pvZeroPgRC);
    2727     LOG_PGM_MEMBER("#RHp",          HCPhysMmioPg);
    2728     LOG_PGM_MEMBER("#RHp",          HCPhysInvMmioPg);
    2729     LOG_PGM_MEMBER("p",             pvMmioPgR3);
    2730     LOG_PGM_MEMBER("RTbool",        fErrInjHandyPages);
    2731 
    2732     /*
    2733      * PGM page pool.
    2734      */
    2735     PPGMPOOL pPool = pVM->pgm.s.pPoolR3;
    2736     RTLogRelPrintf("PGM Page Pool\n");
    2737 # define LOG_PGMPOOL_MEMBER(aFmt, aMember) RTLogRelPrintf(" %32s: %" aFmt "\n", #aMember, pPool->aMember)
    2738     LOG_PGMPOOL_MEMBER("p",         pVMR3);
    2739     LOG_PGMPOOL_MEMBER("p",         pVMR0);
    2740     LOG_PGMPOOL_MEMBER("RRv",       pVMRC);
    2741     LOG_PGMPOOL_MEMBER("#x",        cMaxPages);
    2742     LOG_PGMPOOL_MEMBER("#x",        cCurPages);
    2743     LOG_PGMPOOL_MEMBER("#x",        iFreeHead);
    2744     LOG_PGMPOOL_MEMBER("#x",        u16Padding);
    2745     LOG_PGMPOOL_MEMBER("#x",        iUserFreeHead);
    2746     LOG_PGMPOOL_MEMBER("#x",        cMaxUsers);
    2747     LOG_PGMPOOL_MEMBER("#x",        cPresent);
    2748     LOG_PGMPOOL_MEMBER("RRv",       paUsersRC);
    2749     LOG_PGMPOOL_MEMBER("p",         paUsersR3);
    2750     LOG_PGMPOOL_MEMBER("p",         paUsersR0);
    2751     LOG_PGMPOOL_MEMBER("#x",        iPhysExtFreeHead);
    2752     LOG_PGMPOOL_MEMBER("#x",        cMaxPhysExts);
    2753     LOG_PGMPOOL_MEMBER("RRv",       paPhysExtsRC);
    2754     LOG_PGMPOOL_MEMBER("p",         paPhysExtsR3);
    2755     LOG_PGMPOOL_MEMBER("p",         paPhysExtsR0);
    2756     for (uint32_t i = 0; i < RT_ELEMENTS(pPool->aiHash); i++)
    2757         RTLogRelPrintf(" aiHash[%u]: %#x\n", i, pPool->aiHash[i]);
    2758     LOG_PGMPOOL_MEMBER("#x",        iAgeHead);
    2759     LOG_PGMPOOL_MEMBER("#x",        iAgeTail);
    2760     LOG_PGMPOOL_MEMBER("RTbool",    fCacheEnabled);
    2761     LOG_PGMPOOL_MEMBER("RTbool",    afPadding1[0]);
    2762     LOG_PGMPOOL_MEMBER("RTbool",    afPadding1[1]);
    2763     LOG_PGMPOOL_MEMBER("RTbool",    afPadding1[2]);
    2764     LOG_PGMPOOL_MEMBER("#x",        iModifiedHead);
    2765     LOG_PGMPOOL_MEMBER("#x",        cModifiedPages);
    2766     LOG_PGMPOOL_MEMBER("#x",        hAccessHandlerType);
    2767     LOG_PGMPOOL_MEMBER("#x",        idxFreeDirtyPage);
    2768     LOG_PGMPOOL_MEMBER("#x",        cDirtyPages);
    2769     for (uint32_t i = 0; i < RT_ELEMENTS(pPool->aDirtyPages); i++)
    2770         RTLogRelPrintf(" aDirtyPages[%u].uIdx: %#x\n", i, pPool->aDirtyPages[i].uIdx);
    2771     LOG_PGMPOOL_MEMBER("#x",        cUsedPages);
    2772     LOG_PGMPOOL_MEMBER("#x",        HCPhysTree);
    2773     for (uint32_t i = 0; i < pPool->cCurPages; i++)
    2774     {
    2775         PPGMPOOLPAGE pPage = &pPool->aPages[i];
    2776 # define LOG_PAGE_MEMBER(aFmt, aMember) RTLogRelPrintf(" %3u:%-32s: %" aFmt "\n", i, #aMember, pPage->aMember)
    2777         RTLogRelPrintf("%3u:%-32s: %p\n", i, "", pPage);
    2778         LOG_PAGE_MEMBER("RHp",      Core.Key);
    2779         LOG_PAGE_MEMBER("p",        pvPageR3);
    2780         LOG_PAGE_MEMBER("RGp",      GCPhys);
    2781         LOG_PAGE_MEMBER("d",        enmKind);
    2782         LOG_PAGE_MEMBER("d",        enmAccess);
    2783         LOG_PAGE_MEMBER("RTbool",   fA20Enabled);
    2784         LOG_PAGE_MEMBER("RTbool",   fZeroed);
    2785         LOG_PAGE_MEMBER("RTbool",   fSeenNonGlobal);
    2786         LOG_PAGE_MEMBER("RTbool",   fMonitored);
    2787         LOG_PAGE_MEMBER("RTbool",   fCached);
    2788         LOG_PAGE_MEMBER("RTbool",   fReusedFlushPending);
    2789         LOG_PAGE_MEMBER("RTbool",   fDirty);
    2790         LOG_PAGE_MEMBER("RTbool",   fPadding1);
    2791         LOG_PAGE_MEMBER("RTbool",   fPadding2);
    2792         LOG_PAGE_MEMBER("#x",       idx);
    2793         LOG_PAGE_MEMBER("#x",       iNext);
    2794         LOG_PAGE_MEMBER("#x",       iUserHead);
    2795         LOG_PAGE_MEMBER("#x",       cPresent);
    2796         LOG_PAGE_MEMBER("#x",       iFirstPresent);
    2797         LOG_PAGE_MEMBER("#x",       cModifications);
    2798         LOG_PAGE_MEMBER("#x",       iModifiedNext);
    2799         LOG_PAGE_MEMBER("#x",       iModifiedPrev);
    2800         LOG_PAGE_MEMBER("#x",       iMonitoredNext);
    2801         LOG_PAGE_MEMBER("#x",       iMonitoredPrev);
    2802         LOG_PAGE_MEMBER("#x",       iAgeNext);
    2803         LOG_PAGE_MEMBER("#x",       iAgePrev);
    2804         LOG_PAGE_MEMBER("#x",       idxDirtyEntry);
    2805         LOG_PAGE_MEMBER("RGv",      GCPtrLastAccessHandlerRip);
    2806         LOG_PAGE_MEMBER("RGv",      GCPtrLastAccessHandlerFault);
    2807         LOG_PAGE_MEMBER("#RX64",    cLastAccessHandler);
    2808         LOG_PAGE_MEMBER("#RX32",    cLocked);
    2809 # ifdef VBOX_STRICT
    2810         LOG_PAGE_MEMBER("RGv",      GCPtrDirtyFault);
    2811 # endif
    2812         if (   pPage->enmKind == PGMPOOLKIND_32BIT_PT_FOR_32BIT_PT
    2813             || pPage->enmKind == PGMPOOLKIND_32BIT_PT_FOR_32BIT_4MB
    2814             || pPage->enmKind == PGMPOOLKIND_32BIT_PD
    2815             || pPage->enmKind == PGMPOOLKIND_32BIT_PD_PHYS)
    2816         {
    2817             uint32_t const *pu32Page = (uint32_t const *)pPage->pvPageR3;
    2818             for (uint32_t i = 0; i < 1024/2; i += 4)
    2819                 RTLogRelPrintf(" %#05x: %RX32 %RX32 %RX32 %RX32\n", i, pu32Page[i], pu32Page[i+1], pu32Page[i+2], pu32Page[i+3]);
    2820         }
    2821         else if (   pPage->enmKind != PGMPOOLKIND_FREE
    2822                  && pPage->enmKind != PGMPOOLKIND_INVALID)
    2823         {
    2824             uint64_t const *pu64Page = (uint64_t const *)pPage->pvPageR3;
    2825             for (uint32_t i = 0; i < 512/2; i += 2)
    2826                 RTLogRelPrintf(" %#05x: %RX64 %RX64\n", i, pu64Page[i], pu64Page[i+1]);
    2827         }
    2828     }
    2829 
    2830     RTLogRelPrintf("pgmLogState pgmLogState pgmLogState pgmLogState pgmLogState\n\n");
    2831 #else
    2832     RT_NOREF(pVM);
    2833 #endif
    2834 }
    2835 
  • trunk/src/VBox/VMM/include/PGMInternal.h

    r65468 r65476  
    43234323# endif
    43244324
    4325 void            pgmLogState(PVM pVM);
    4326 
    43274325RT_C_DECLS_END
    43284326
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette