VirtualBox

Changeset 108366 in vbox


Ignore:
Timestamp:
Feb 25, 2025 10:35:57 AM (8 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167727
Message:

VMM/NEMR3Native-win-armv8.cpp: Fix todo, don't import the whole VM state when handling a VM exit except for when state logging is enabled, bugref:10392

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/NEMR3Native-win-armv8.cpp

    r107933 r108366  
    18791879DECLINLINE(void) nemR3WinCopyStateFromArmHeader(PVMCPUCC pVCpu, WHV_INTERCEPT_MESSAGE_HEADER const *pMsgHdr)
    18801880{
    1881     Assert(   (pVCpu->cpum.GstCtx.fExtrn & (CPUMCTX_EXTRN_PC | CPUMCTX_EXTRN_PSTATE))
    1882            ==                              (CPUMCTX_EXTRN_PC | CPUMCTX_EXTRN_PSTATE));
     1881#ifdef LOG_ENABLED /* When state logging is enabled the state is synced completely upon VM exit. */
     1882    if (!LogIs3Enabled())
     1883#endif
     1884        Assert(   (pVCpu->cpum.GstCtx.fExtrn & (CPUMCTX_EXTRN_PC | CPUMCTX_EXTRN_PSTATE))
     1885               ==                              (CPUMCTX_EXTRN_PC | CPUMCTX_EXTRN_PSTATE));
    18831886
    18841887    pVCpu->cpum.GstCtx.Pc.u64   = pMsgHdr->Pc;
     
    21582161                                            : EMEXIT_MAKE_FT(EMEXIT_F_KIND_EM, EMEXITTYPE_MMIO_READ),
    21592162                                            pHdr->Pc, uHostTsc);
    2160 #pragma message("nemR3WinHandleExitMemory: Why not calling nemR3WinCopyStateFromArmHeader?")
    2161 /** @todo r=bird: Why is nemR3WinCopyStateFromArmHeader commented out? */
    2162     //nemR3WinCopyStateFromArmHeader(pVCpu, &pExit->MemoryAccess.Header);
     2163    nemR3WinCopyStateFromArmHeader(pVCpu, &pExit->MemoryAccess.Header);
    21632164    RT_NOREF_PV(pExitRec);
    21642165    rc = nemHCWinCopyStateFromHyperV(pVM, pVCpu, IEM_CPUMCTX_EXTRN_MUST_MASK);
     
    24392440NEM_TMPL_STATIC VBOXSTRICTRC nemR3WinHandleExit(PVMCC pVM, PVMCPUCC pVCpu, MY_WHV_RUN_VP_EXIT_CONTEXT const *pExit)
    24402441{
    2441     int rc = nemHCWinCopyStateFromHyperV(pVM, pVCpu, CPUMCTX_EXTRN_ALL);
    2442     AssertRCReturn(rc, rc);
    2443 
    24442442#ifdef LOG_ENABLED
    24452443    if (LogIs3Enabled())
     2444    {
     2445        int rc = nemHCWinCopyStateFromHyperV(pVM, pVCpu, CPUMCTX_EXTRN_ALL);
     2446        AssertRCReturn(rc, rc);
     2447
    24462448        nemR3WinLogState(pVM, pVCpu);
     2449    }
    24472450#endif
    24482451
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