VirtualBox

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


Ignore:
Timestamp:
Jan 1, 2015 11:53:43 PM (10 years ago)
Author:
vboxsync
Message:

vmexit trace points.

Location:
trunk/src/VBox/VMM/VMMR0
Files:
2 edited

Legend:

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

    r53629 r53631  
    3131#include <VBox/vmm/tm.h>
    3232#include <VBox/vmm/gim.h>
     33#include "dtrace/VBoxVMM.h"
    3334
    3435#ifdef DEBUG_ramshankar
     
    33003301        HMSVM_EXITCODE_STAM_COUNTER_INC(SvmTransient.u64ExitCode);
    33013302        STAM_PROFILE_ADV_STOP_START(&pVCpu->hm.s.StatExit1, &pVCpu->hm.s.StatExit2, x);
     3303        VBOXVMM_R0_HMSVM_VMEXIT(pVCpu, pCtx, SvmTransient.u64ExitCode, (PSVMVMCB)pVCpu->hm.s.svm.pvVmcb);
    33023304        rc = hmR0SvmHandleExit(pVCpu, pCtx, &SvmTransient);
    33033305        STAM_PROFILE_ADV_STOP(&pVCpu->hm.s.StatExit2, x);
     
    33773379        HMSVM_EXITCODE_STAM_COUNTER_INC(SvmTransient.u64ExitCode);
    33783380        STAM_PROFILE_ADV_STOP_START(&pVCpu->hm.s.StatExit1, &pVCpu->hm.s.StatExit2, x);
     3381        VBOXVMM_R0_HMSVM_VMEXIT(pVCpu, pCtx, SvmTransient.u64ExitCode, (PSVMVMCB)pVCpu->hm.s.svm.pvVmcb);
    33793382        rc = hmR0SvmHandleExit(pVCpu, pCtx, &SvmTransient);
    33803383        STAM_PROFILE_ADV_STOP(&pVCpu->hm.s.StatExit2, x);
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r53628 r53631  
    3737# include <VBox/vmm/rem.h>
    3838#endif
     39# include "dtrace/VBoxVMM.h"
     40
    3941#ifdef DEBUG_ramshankar
    4042# define HMVMX_ALWAYS_SAVE_GUEST_RFLAGS
     
    88328834        }
    88338835
    8834         /* Handle the VM-exit. */
     8836        /* Profiling the VM-exit. */
    88358837        AssertMsg(VmxTransient.uExitReason <= VMX_EXIT_MAX, ("%#x\n", VmxTransient.uExitReason));
    88368838        STAM_COUNTER_INC(&pVCpu->hm.s.StatExitAll);
     
    88388840        STAM_PROFILE_ADV_STOP_START(&pVCpu->hm.s.StatExit1, &pVCpu->hm.s.StatExit2, x);
    88398841        HMVMX_START_EXIT_DISPATCH_PROF();
     8842
     8843        VBOXVMM_R0_HMVMX_VMEXIT_NOCTX(pVCpu, pCtx, VmxTransient.uExitReason);
     8844        if (RT_UNLIKELY(VBOXVMM_R0_HMVMX_VMEXIT_ENABLED()))
     8845        {
     8846            hmR0VmxReadExitQualificationVmcs(pVCpu, &VmxTransient);
     8847            hmR0VmxSaveGuestState(pVCpu, pCtx);
     8848            VBOXVMM_R0_HMVMX_VMEXIT(pVCpu, pCtx, VmxTransient.uExitReason, VmxTransient.uExitQualification);
     8849        }
     8850
     8851        /* Handle the VM-exit. */
    88408852#ifdef HMVMX_USE_FUNCTION_TABLE
    88418853        rc = g_apfnVMExitHandlers[VmxTransient.uExitReason](pVCpu, pCtx, &VmxTransient);
     
    89058917            return VBOXSTRICTRC_TODO(rcStrict);
    89068918        }
    8907 
    8908         /* Handle the VM-exit - we quit earlier on certain VM-exits, see hmR0VmxHandleExitStep(). */
     8919        /* Profiling the VM-exit. */
    89098920        AssertMsg(VmxTransient.uExitReason <= VMX_EXIT_MAX, ("%#x\n", VmxTransient.uExitReason));
    89108921        STAM_COUNTER_INC(&pVCpu->hm.s.StatExitAll);
     
    89128923        STAM_PROFILE_ADV_STOP_START(&pVCpu->hm.s.StatExit1, &pVCpu->hm.s.StatExit2, x);
    89138924        HMVMX_START_EXIT_DISPATCH_PROF();
     8925
     8926        VBOXVMM_R0_HMVMX_VMEXIT_NOCTX(pVCpu, pCtx, VmxTransient.uExitReason);
     8927        if (RT_UNLIKELY(VBOXVMM_R0_HMVMX_VMEXIT_ENABLED()))
     8928        {
     8929            hmR0VmxReadExitQualificationVmcs(pVCpu, &VmxTransient);
     8930            hmR0VmxSaveGuestState(pVCpu, pCtx);
     8931            VBOXVMM_R0_HMVMX_VMEXIT(pVCpu, pCtx, VmxTransient.uExitReason, VmxTransient.uExitQualification);
     8932        }
     8933
     8934        /* Handle the VM-exit - we quit earlier on certain VM-exits, see hmR0VmxHandleExitStep(). */
    89148935        rcStrict = hmR0VmxHandleExitStep(pVCpu, pCtx, &VmxTransient, VmxTransient.uExitReason, uCsStart, uRipStart);
    89158936        STAM_PROFILE_ADV_STOP(&pVCpu->hm.s.StatExit2, x);
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