Changeset 93785 in vbox for trunk/src/VBox
- Timestamp:
- Feb 16, 2022 10:18:50 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/NEMR3Native-darwin.cpp
r93750 r93785 3328 3328 3329 3329 /** 3330 * Checks if any expensive dtrace probes are enabled and we should go to the 3331 * debug loop. 3332 * 3333 * @returns true if we should use debug loop, false if not. 3334 */ 3335 static bool nemR3DarwinAnyExpensiveProbesEnabled(void) 3336 { 3337 /** @todo Check performance penalty when checking these over and over */ 3338 return ( VBOXVMM_R0_HMVMX_VMEXIT_ENABLED() /* expensive too due to context */ 3339 | VBOXVMM_XCPT_DE_ENABLED() 3340 | VBOXVMM_XCPT_DB_ENABLED() 3341 | VBOXVMM_XCPT_BP_ENABLED() 3342 | VBOXVMM_XCPT_OF_ENABLED() 3343 | VBOXVMM_XCPT_BR_ENABLED() 3344 | VBOXVMM_XCPT_UD_ENABLED() 3345 | VBOXVMM_XCPT_NM_ENABLED() 3346 | VBOXVMM_XCPT_DF_ENABLED() 3347 | VBOXVMM_XCPT_TS_ENABLED() 3348 | VBOXVMM_XCPT_NP_ENABLED() 3349 | VBOXVMM_XCPT_SS_ENABLED() 3350 | VBOXVMM_XCPT_GP_ENABLED() 3351 | VBOXVMM_XCPT_PF_ENABLED() 3352 | VBOXVMM_XCPT_MF_ENABLED() 3353 | VBOXVMM_XCPT_AC_ENABLED() 3354 | VBOXVMM_XCPT_XF_ENABLED() 3355 | VBOXVMM_XCPT_VE_ENABLED() 3356 | VBOXVMM_XCPT_SX_ENABLED() 3357 | VBOXVMM_INT_SOFTWARE_ENABLED() 3358 /* not available in R3 | VBOXVMM_INT_HARDWARE_ENABLED()*/ 3359 ) != 0 3360 || ( VBOXVMM_INSTR_HALT_ENABLED() 3361 | VBOXVMM_INSTR_MWAIT_ENABLED() 3362 | VBOXVMM_INSTR_MONITOR_ENABLED() 3363 | VBOXVMM_INSTR_CPUID_ENABLED() 3364 | VBOXVMM_INSTR_INVD_ENABLED() 3365 | VBOXVMM_INSTR_WBINVD_ENABLED() 3366 | VBOXVMM_INSTR_INVLPG_ENABLED() 3367 | VBOXVMM_INSTR_RDTSC_ENABLED() 3368 | VBOXVMM_INSTR_RDTSCP_ENABLED() 3369 | VBOXVMM_INSTR_RDPMC_ENABLED() 3370 | VBOXVMM_INSTR_RDMSR_ENABLED() 3371 | VBOXVMM_INSTR_WRMSR_ENABLED() 3372 | VBOXVMM_INSTR_CRX_READ_ENABLED() 3373 | VBOXVMM_INSTR_CRX_WRITE_ENABLED() 3374 | VBOXVMM_INSTR_DRX_READ_ENABLED() 3375 | VBOXVMM_INSTR_DRX_WRITE_ENABLED() 3376 | VBOXVMM_INSTR_PAUSE_ENABLED() 3377 | VBOXVMM_INSTR_XSETBV_ENABLED() 3378 | VBOXVMM_INSTR_SIDT_ENABLED() 3379 | VBOXVMM_INSTR_LIDT_ENABLED() 3380 | VBOXVMM_INSTR_SGDT_ENABLED() 3381 | VBOXVMM_INSTR_LGDT_ENABLED() 3382 | VBOXVMM_INSTR_SLDT_ENABLED() 3383 | VBOXVMM_INSTR_LLDT_ENABLED() 3384 | VBOXVMM_INSTR_STR_ENABLED() 3385 | VBOXVMM_INSTR_LTR_ENABLED() 3386 | VBOXVMM_INSTR_GETSEC_ENABLED() 3387 | VBOXVMM_INSTR_RSM_ENABLED() 3388 | VBOXVMM_INSTR_RDRAND_ENABLED() 3389 | VBOXVMM_INSTR_RDSEED_ENABLED() 3390 | VBOXVMM_INSTR_XSAVES_ENABLED() 3391 | VBOXVMM_INSTR_XRSTORS_ENABLED() 3392 | VBOXVMM_INSTR_VMM_CALL_ENABLED() 3393 | VBOXVMM_INSTR_VMX_VMCLEAR_ENABLED() 3394 | VBOXVMM_INSTR_VMX_VMLAUNCH_ENABLED() 3395 | VBOXVMM_INSTR_VMX_VMPTRLD_ENABLED() 3396 | VBOXVMM_INSTR_VMX_VMPTRST_ENABLED() 3397 | VBOXVMM_INSTR_VMX_VMREAD_ENABLED() 3398 | VBOXVMM_INSTR_VMX_VMRESUME_ENABLED() 3399 | VBOXVMM_INSTR_VMX_VMWRITE_ENABLED() 3400 | VBOXVMM_INSTR_VMX_VMXOFF_ENABLED() 3401 | VBOXVMM_INSTR_VMX_VMXON_ENABLED() 3402 | VBOXVMM_INSTR_VMX_VMFUNC_ENABLED() 3403 | VBOXVMM_INSTR_VMX_INVEPT_ENABLED() 3404 | VBOXVMM_INSTR_VMX_INVVPID_ENABLED() 3405 | VBOXVMM_INSTR_VMX_INVPCID_ENABLED() 3406 ) != 0 3407 || ( VBOXVMM_EXIT_TASK_SWITCH_ENABLED() 3408 | VBOXVMM_EXIT_HALT_ENABLED() 3409 | VBOXVMM_EXIT_MWAIT_ENABLED() 3410 | VBOXVMM_EXIT_MONITOR_ENABLED() 3411 | VBOXVMM_EXIT_CPUID_ENABLED() 3412 | VBOXVMM_EXIT_INVD_ENABLED() 3413 | VBOXVMM_EXIT_WBINVD_ENABLED() 3414 | VBOXVMM_EXIT_INVLPG_ENABLED() 3415 | VBOXVMM_EXIT_RDTSC_ENABLED() 3416 | VBOXVMM_EXIT_RDTSCP_ENABLED() 3417 | VBOXVMM_EXIT_RDPMC_ENABLED() 3418 | VBOXVMM_EXIT_RDMSR_ENABLED() 3419 | VBOXVMM_EXIT_WRMSR_ENABLED() 3420 | VBOXVMM_EXIT_CRX_READ_ENABLED() 3421 | VBOXVMM_EXIT_CRX_WRITE_ENABLED() 3422 | VBOXVMM_EXIT_DRX_READ_ENABLED() 3423 | VBOXVMM_EXIT_DRX_WRITE_ENABLED() 3424 | VBOXVMM_EXIT_PAUSE_ENABLED() 3425 | VBOXVMM_EXIT_XSETBV_ENABLED() 3426 | VBOXVMM_EXIT_SIDT_ENABLED() 3427 | VBOXVMM_EXIT_LIDT_ENABLED() 3428 | VBOXVMM_EXIT_SGDT_ENABLED() 3429 | VBOXVMM_EXIT_LGDT_ENABLED() 3430 | VBOXVMM_EXIT_SLDT_ENABLED() 3431 | VBOXVMM_EXIT_LLDT_ENABLED() 3432 | VBOXVMM_EXIT_STR_ENABLED() 3433 | VBOXVMM_EXIT_LTR_ENABLED() 3434 | VBOXVMM_EXIT_GETSEC_ENABLED() 3435 | VBOXVMM_EXIT_RSM_ENABLED() 3436 | VBOXVMM_EXIT_RDRAND_ENABLED() 3437 | VBOXVMM_EXIT_RDSEED_ENABLED() 3438 | VBOXVMM_EXIT_XSAVES_ENABLED() 3439 | VBOXVMM_EXIT_XRSTORS_ENABLED() 3440 | VBOXVMM_EXIT_VMM_CALL_ENABLED() 3441 | VBOXVMM_EXIT_VMX_VMCLEAR_ENABLED() 3442 | VBOXVMM_EXIT_VMX_VMLAUNCH_ENABLED() 3443 | VBOXVMM_EXIT_VMX_VMPTRLD_ENABLED() 3444 | VBOXVMM_EXIT_VMX_VMPTRST_ENABLED() 3445 | VBOXVMM_EXIT_VMX_VMREAD_ENABLED() 3446 | VBOXVMM_EXIT_VMX_VMRESUME_ENABLED() 3447 | VBOXVMM_EXIT_VMX_VMWRITE_ENABLED() 3448 | VBOXVMM_EXIT_VMX_VMXOFF_ENABLED() 3449 | VBOXVMM_EXIT_VMX_VMXON_ENABLED() 3450 | VBOXVMM_EXIT_VMX_VMFUNC_ENABLED() 3451 | VBOXVMM_EXIT_VMX_INVEPT_ENABLED() 3452 | VBOXVMM_EXIT_VMX_INVVPID_ENABLED() 3453 | VBOXVMM_EXIT_VMX_INVPCID_ENABLED() 3454 | VBOXVMM_EXIT_VMX_EPT_VIOLATION_ENABLED() 3455 | VBOXVMM_EXIT_VMX_EPT_MISCONFIG_ENABLED() 3456 | VBOXVMM_EXIT_VMX_VAPIC_ACCESS_ENABLED() 3457 | VBOXVMM_EXIT_VMX_VAPIC_WRITE_ENABLED() 3458 ) != 0; 3459 } 3460 3461 3462 /** 3330 3463 * The debug runloop. 3331 3464 * … … 3485 3618 VBOXSTRICTRC rcStrict; 3486 3619 if ( !pVCpu->nem.s.fUseDebugLoop 3487 /** @todo dtrace && (!VBOXVMM_ANY_PROBES_ENABLED() || !hmR0VmxAnyExpensiveProbesEnabled()) */3620 && !nemR3DarwinAnyExpensiveProbesEnabled() 3488 3621 && !DBGFIsStepping(pVCpu) 3489 3622 && !pVCpu->CTX_SUFF(pVM)->dbgf.ro.cEnabledInt3Breakpoints)
Note:
See TracChangeset
for help on using the changeset viewer.