VirtualBox

Changeset 79539 in vbox for trunk/src


Ignore:
Timestamp:
Jul 5, 2019 7:21:31 AM (6 years ago)
Author:
vboxsync
Message:

VMM/HMSVMR0: Nested SVM: bugref:7243 Add missing exception stat counters.

File:
1 edited

Legend:

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

    r79532 r79539  
    76157615    HMSVM_VALIDATE_EXIT_HANDLER_PARAMS(pVCpu, pSvmTransient);
    76167616    HMSVM_ASSERT_NOT_IN_NESTED_GUEST(&pVCpu->cpum.GstCtx);
     7617    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestUD);
    76177618
    76187619    /* Paranoia; Ensure we cannot be called as a result of event delivery. */
     
    76617662    HMSVM_VALIDATE_EXIT_HANDLER_PARAMS(pVCpu, pSvmTransient);
    76627663    HMSVM_CPUMCTX_IMPORT_STATE(pVCpu, HMSVM_CPUMCTX_EXTRN_ALL);
     7664    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestMF);
    76637665
    76647666    PCPUMCTX pCtx  = &pVCpu->cpum.GstCtx;
     
    77027704    HMSVM_CPUMCTX_IMPORT_STATE(pVCpu, HMSVM_CPUMCTX_EXTRN_ALL);
    77037705    HMSVM_CHECK_EXIT_DUE_TO_EVENT_DELIVERY(pVCpu, pSvmTransient);
     7706    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestDB);
    77047707
    77057708    if (RT_UNLIKELY(pVCpu->hm.s.Event.fPending))
     
    77587761    HMSVM_VALIDATE_EXIT_HANDLER_PARAMS(pVCpu, pSvmTransient);
    77597762    HMSVM_CHECK_EXIT_DUE_TO_EVENT_DELIVERY(pVCpu, pSvmTransient);
     7763    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestAC);
    77607764
    77617765    SVMEVENT Event;
     
    77797783    HMSVM_CPUMCTX_IMPORT_STATE(pVCpu, HMSVM_CPUMCTX_EXTRN_ALL);
    77807784    HMSVM_CHECK_EXIT_DUE_TO_EVENT_DELIVERY(pVCpu, pSvmTransient);
     7785    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestBP);
    77817786
    77827787    PCPUMCTX pCtx = &pVCpu->cpum.GstCtx;
     
    78777882    HMSVM_VALIDATE_EXIT_HANDLER_PARAMS(pVCpu, pSvmTransient);
    78787883    HMSVM_CHECK_EXIT_DUE_TO_EVENT_DELIVERY(pVCpu, pSvmTransient);
     7884    STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestGP);
    78797885
    78807886    PCSVMVMCB pVmcb = hmR0SvmGetCurrentVmcb(pVCpu);
     
    79377943    }
    79387944
     7945#ifdef VBOX_WITH_STATISTICS
     7946    switch (uVector)
     7947    {
     7948        case SVM_EXIT_XCPT_DE:             STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestDE);      break;
     7949        /*   SVM_EXIT_XCPT_DB: */          STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestDB);      break;
     7950        /*   SVM_EXIT_XCPT_NMI: */         /* Handled elsewhere. */
     7951        /*   SVM_EXIT_XCPT_BP: */          STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestBP);      break;
     7952        case SVM_EXIT_XCPT_OF:             STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestOF);      break;
     7953        case SVM_EXIT_XCPT_BR:             STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestBR);      break;
     7954        /*   SVM_EXIT_XCPT_UD: */          STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestUD);      break;
     7955        case SVM_EXIT_XCPT_NM:             STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestOF);      break;
     7956        case SVM_EXIT_XCPT_DF:             STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestDF);      break;
     7957        case SVM_EXIT_XCPT_CO_SEG_OVERRUN: /* Legacy */                                         break;
     7958        case SVM_EXIT_XCPT_TS:             STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestTS);      break;
     7959        case SVM_EXIT_XCPT_NP:             STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestNP);      break;
     7960        case SVM_EXIT_XCPT_SS:             STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestSS);      break;
     7961        case SVM_EXIT_XCPT_GP:             STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestGP);      break;
     7962        /*   SVM_EXIT_XCPT_PF: */          STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestPF);      break;
     7963        case SVM_EXIT_XCPT_15:             /* Reserved.      */
     7964        /*   SVM_EXIT_XCPT_MF: */          STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestMF);      break;
     7965        /*   SVM_EXIT_XCPT_AC: */          STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestAC);      break;
     7966        case SVM_EXIT_XCPT_MC:             /* Machine-check exceptions shouldn't happen. */     break;
     7967        case SVM_EXIT_XCPT_XF:             STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestXF);      break;
     7968    }
     7969#endif
     7970
    79397971    hmR0SvmSetPendingEvent(pVCpu, &Event, 0 /* GCPtrFaultAddress */);
    79407972    return VINF_SUCCESS;
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