VirtualBox

Changeset 87504 in vbox for trunk/src/VBox/VMM/VMMR0


Ignore:
Timestamp:
Feb 1, 2021 3:12:21 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
142528
Message:

VMM/HMSVM: Moving more stuff to HMR0PERVCPU. bugref:9217

File:
1 edited

Legend:

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

    r87503 r87504  
    21072107               every #VMEXIT if we should update the TPR. */
    21082108            Assert(pVmcb->ctrl.IntCtrl.n.u1VIntrMasking);
    2109             pVCpu->hm.s.svm.fSyncVTpr = false;
     2109            pVCpu->hmr0.s.svm.fSyncVTpr = false;
    21102110
    21112111            if (!pVM->hm.s.fTPRPatchingActive)
     
    21212121                {
    21222122                    pVmcb->ctrl.u16InterceptWrCRx &= ~RT_BIT(8);
    2123                     pVCpu->hm.s.svm.fSyncVTpr = true;
     2123                    pVCpu->hmr0.s.svm.fSyncVTpr = true;
    21242124                }
    21252125
     
    21382138                {
    21392139                    hmR0SvmSetMsrPermission(pVCpu, pbMsrBitmap, MSR_K8_LSTAR, SVMMSREXIT_PASSTHRU_READ, SVMMSREXIT_PASSTHRU_WRITE);
    2140                     pVCpu->hm.s.svm.fSyncVTpr = true;
     2140                    pVCpu->hmr0.s.svm.fSyncVTpr = true;
    21412141                }
    21422142                pVmcb->ctrl.u32VmcbCleanBits &= ~HMSVM_VMCB_CLEAN_IOPM_MSRPM;
     
    25712571         * to the nested-guest intercepts and we always run with V_INTR_MASKING.
    25722572         */
    2573         pVCpu->hm.s.svm.fSyncVTpr = false;
     2573        pVCpu->hmr0.s.svm.fSyncVTpr = false;
    25742574
    25752575#ifdef DEBUG_ramshankar
     
    26022602    else
    26032603    {
    2604         Assert(!pVCpu->hm.s.svm.fSyncVTpr);
     2604        Assert(!pVCpu->hmr0.s.svm.fSyncVTpr);
    26052605        Assert(pVmcbNstGstCtrl->u64IOPMPhysAddr == g_HCPhysIOBitmap);
    26062606        Assert(RT_BOOL(pVmcbNstGstCtrl->NestedPagingCtrl.n.u1NestedPaging) == pVCpu->CTX_SUFF(pVM)->hm.s.fNestedPaging);
     
    41294129     * world-switch so we can update it on the way back if the guest changed the TPR.
    41304130     */
    4131     if (pVCpu->hm.s.svm.fSyncVTpr)
     4131    if (pVCpu->hmr0.s.svm.fSyncVTpr)
    41324132    {
    41334133        Assert(!pSvmTransient->fIsNestedGuest);
     
    42854285    {
    42864286        uint64_t const uGuestTscAux = CPUMGetGuestTscAux(pVCpu);
    4287         pVCpu->hm.s.svm.u64HostTscAux  = ASMRdMsr(MSR_K8_TSC_AUX);
    4288         if (uGuestTscAux != pVCpu->hm.s.svm.u64HostTscAux)
     4287        pVCpu->hmr0.s.svm.u64HostTscAux = ASMRdMsr(MSR_K8_TSC_AUX);
     4288        if (uGuestTscAux != pVCpu->hmr0.s.svm.u64HostTscAux)
    42894289            ASMWrMsr(MSR_K8_TSC_AUX, uGuestTscAux);
    42904290        hmR0SvmSetMsrPermission(pVCpu, pbMsrBitmap, MSR_K8_TSC_AUX, SVMMSREXIT_PASSTHRU_READ, SVMMSREXIT_PASSTHRU_WRITE);
     
    43684368        uint64_t u64GuestTscAuxMsr = ASMRdMsr(MSR_K8_TSC_AUX);
    43694369        CPUMSetGuestTscAux(pVCpu, u64GuestTscAuxMsr);
    4370         if (u64GuestTscAuxMsr != pVCpu->hm.s.svm.u64HostTscAux)
    4371             ASMWrMsr(MSR_K8_TSC_AUX, pVCpu->hm.s.svm.u64HostTscAux);
     4370        if (u64GuestTscAuxMsr != pVCpu->hmr0.s.svm.u64HostTscAux)
     4371            ASMWrMsr(MSR_K8_TSC_AUX, pVCpu->hmr0.s.svm.u64HostTscAux);
    43724372    }
    43734373
     
    44214421
    44224422    if (   pSvmTransient->u64ExitCode != SVM_EXIT_INVALID
    4423         && pVCpu->hm.s.svm.fSyncVTpr)
     4423        && pVCpu->hmr0.s.svm.fSyncVTpr)
    44244424    {
    44254425        Assert(!pSvmTransient->fIsNestedGuest);
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