Changeset 104407 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Apr 23, 2024 11:16:04 PM (9 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/IEMR3.cpp
r104362 r104407 383 383 STAMR3RegisterF(pVM, (void *)&pVCpu->iem.s.cTbExecThreaded, STAMTYPE_U64_RESET, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 384 384 "Executed threaded translation block", "/IEM/CPU%u/re/cTbExecThreaded", idCpu); 385 STAMR3RegisterF(pVM, (void *)&pVCpu->iem.s.StatTb ExecBreaks,STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_OCCURENCES,386 "Times TB execution was interrupted/broken off", "/IEM/CPU%u/re/cTbExecBreaks", idCpu);385 STAMR3RegisterF(pVM, (void *)&pVCpu->iem.s.StatTbThreadedExecBreaks, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_OCCURENCES, 386 "Times threaded TB execution was interrupted/broken off", "/IEM/CPU%u/re/cTbExecThreadedBreaks", idCpu); 387 387 # ifdef VBOX_WITH_STATISTICS 388 388 STAMR3RegisterF(pVM, (void *)&pVCpu->iem.s.StatTbThreadedExecBreaksWithLookup, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_OCCURENCES, 389 "Times threaded TB execution was interrupted/broken off on a call with lookup entries", "/IEM/CPU%u/re/cTbExec BreaksWithLookup", idCpu);389 "Times threaded TB execution was interrupted/broken off on a call with lookup entries", "/IEM/CPU%u/re/cTbExecThreadedBreaksWithLookup", idCpu); 390 390 STAMR3RegisterF(pVM, (void *)&pVCpu->iem.s.StatTbThreadedExecBreaksWithoutLookup, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_OCCURENCES, 391 "Times threaded TB execution was interrupted/broken off on a call without lookup entries", "/IEM/CPU%u/re/cTbExec BreaksWithoutLookup", idCpu);391 "Times threaded TB execution was interrupted/broken off on a call without lookup entries", "/IEM/CPU%u/re/cTbExecThreadedBreaksWithoutLookup", idCpu); 392 392 # endif 393 393 … … 617 617 618 618 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbFinished, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 619 "Number of times the TB finishes execution completely", "/IEM/CPU%u/re/NativeTbFinished", idCpu); 619 "Number of times the TB finishes execution completely", 620 "/IEM/CPU%u/re/NativeTbFinished", idCpu); 621 # endif /* VBOX_WITH_STATISTICS */ 620 622 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitReturnBreak, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 621 "Number of times the TB finished through the ReturnBreak label", "/IEM/CPU%u/re/NativeTbExitReturnBreak", idCpu); 623 "Number of times the TB finished through the ReturnBreak label", 624 "/IEM/CPU%u/re/NativeTbExit/ReturnBreak", idCpu); 625 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitReturnBreakFF, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 626 "Number of times the TB finished through the ReturnBreak label", 627 "/IEM/CPU%u/re/NativeTbExit/ReturnBreakFF", idCpu); 622 628 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitReturnWithFlags, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 623 "Number of times the TB finished through the ReturnWithFlags label", "/IEM/CPU%u/re/NativeTbExitReturnWithFlags", idCpu); 624 # endif /* VBOX_WITH_STATISTICS */ 629 "Number of times the TB finished through the ReturnWithFlags label", 630 "/IEM/CPU%u/re/NativeTbExit/ReturnWithFlags", idCpu); 631 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitReturnOtherStatus, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 632 "Number of times the TB finished with some other status value", 633 "/IEM/CPU%u/re/NativeTbExit/ReturnOtherStatus", idCpu); 634 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitLongJump, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 635 "Number of times the TB finished via long jump / throw", 636 "/IEM/CPU%u/re/NativeTbExit/LongJumps", idCpu); 637 /* These end up returning VINF_IEM_REEXEC_BREAK and are thus already counted under NativeTbExit/ReturnBreak: */ 625 638 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitObsoleteTb, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 626 "Number of times the TB finished through the ObsoleteTb label", "/IEM/CPU%u/re/NativeTbExitObsoleteTb", idCpu); 639 "Number of times the TB finished through the ObsoleteTb label", 640 "/IEM/CPU%u/re/NativeTbExit/ReturnBreak/ObsoleteTb", idCpu); 627 641 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatCheckNeedCsLimChecking, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 628 "Number of times the TB finished through the NeedCsLimChecking label", "/IEM/CPU%u/re/NativeTbExitNeedCsLimChecking", idCpu); 642 "Number of times the TB finished through the NeedCsLimChecking label", 643 "/IEM/CPU%u/re/NativeTbExit/ReturnBreak/NeedCsLimChecking", idCpu); 629 644 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatCheckBranchMisses, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 630 "Number of times the TB finished through the CheckBranchMiss label", "/IEM/CPU%u/re/NativeTbExitCheckBranchMiss", idCpu); 645 "Number of times the TB finished through the CheckBranchMiss label", 646 "/IEM/CPU%u/re/NativeTbExit/ReturnBreak/CheckBranchMiss", idCpu); 647 /* Raising stuff will either increment NativeTbExit/LongJumps or NativeTbExit/ReturnOtherStatus 648 depending on whether VBOX_WITH_IEM_NATIVE_RECOMPILER_LONGJMP is defined: */ 649 # ifdef VBOX_WITH_IEM_NATIVE_RECOMPILER_LONGJMP 650 # define RAISE_PREFIX "/IEM/CPU%u/re/NativeTbExit/ReturnOtherStatus/" 651 # else 652 # define RAISE_PREFIX "/IEM/CPU%u/re/NativeTbExit/LongJumps/" 653 # endif 631 654 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitRaiseDe, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 632 "Number of times the TB finished raising a #DE exception", "/IEM/CPU%u/re/NativeTbExitRaiseDe", idCpu); 655 "Number of times the TB finished raising a #DE exception", 656 RAISE_PREFIX "RaiseDe", idCpu); 633 657 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitRaiseUd, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 634 "Number of times the TB finished raising a #UD exception", "/IEM/CPU%u/re/NativeTbExitRaiseUd", idCpu); 658 "Number of times the TB finished raising a #UD exception", 659 RAISE_PREFIX "RaiseUd", idCpu); 635 660 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitRaiseSseRelated, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 636 "Number of times the TB finished raising a SSE related exception", "/IEM/CPU%u/re/NativeTbExitRaiseSseRelated", idCpu); 661 "Number of times the TB finished raising a SSE related exception", 662 RAISE_PREFIX "RaiseSseRelated", idCpu); 637 663 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitRaiseAvxRelated, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 638 "Number of times the TB finished raising a AVX related exception", "/IEM/CPU%u/re/NativeTbExitRaiseAvxRelated", idCpu); 664 "Number of times the TB finished raising a AVX related exception", 665 RAISE_PREFIX "RaiseAvxRelated", idCpu); 639 666 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitRaiseSseAvxFpRelated, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 640 "Number of times the TB finished raising a SSE/AVX floating point related exception", "/IEM/CPU%u/re/NativeTbExitRaiseSseAvxFpRelated", idCpu); 667 "Number of times the TB finished raising a SSE/AVX floating point related exception", 668 RAISE_PREFIX "RaiseSseAvxFpRelated", idCpu); 641 669 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitRaiseNm, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 642 "Number of times the TB finished raising a #NM exception", "/IEM/CPU%u/re/NativeTbExitRaiseNm", idCpu); 670 "Number of times the TB finished raising a #NM exception", 671 RAISE_PREFIX "RaiseNm", idCpu); 643 672 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitRaiseGp0, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 644 "Number of times the TB finished raising a #GP(0) exception", "/IEM/CPU%u/re/NativeTbExitRaiseGp0", idCpu); 673 "Number of times the TB finished raising a #GP(0) exception", 674 RAISE_PREFIX "RaiseGp0", idCpu); 645 675 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitRaiseMf, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 646 "Number of times the TB finished raising a #MF exception", "/IEM/CPU%u/re/NativeTbExitRaiseMf", idCpu); 676 "Number of times the TB finished raising a #MF exception", 677 RAISE_PREFIX "RaiseMf", idCpu); 647 678 STAMR3RegisterF(pVM, &pVCpu->iem.s.StatNativeTbExitRaiseXf, STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, STAMUNIT_COUNT, 648 "Number of times the TB finished raising a #XF exception", "/IEM/CPU%u/re/NativeTbExitRaiseXf", idCpu); 679 "Number of times the TB finished raising a #XF exception", 680 RAISE_PREFIX "RaiseXf", idCpu); 681 682 RTStrPrintf(szPat, sizeof(szPat), "/IEM/CPU%u/re/NativeTbExit/*", idCpu); /* only immediate children, no sub folders */ 683 STAMR3RegisterSum(pVM->pUVM, STAMVISIBILITY_ALWAYS, szPat, 684 "Number of times native TB execution finished before the end (not counting thrown memory++ exceptions)", 685 "/IEM/CPU%u/re/NativeTbExit", idCpu); 686 649 687 650 688 # endif /* VBOX_WITH_IEM_NATIVE_RECOMPILER */
Note:
See TracChangeset
for help on using the changeset viewer.