Skip to content

Update spmi asp.net script to collect some osr method contexts - #62635

Merged
AndyAyersMS merged 1 commit into
dotnet:mainfrom
AndyAyersMS:UpdateAspNetSpmiCollectionWithOSR
Dec 11, 2021
Merged

Update spmi asp.net script to collect some osr method contexts#62635
AndyAyersMS merged 1 commit into
dotnet:mainfrom
AndyAyersMS:UpdateAspNetSpmiCollectionWithOSR

Conversation

@AndyAyersMS

Copy link
Copy Markdown
Member

Collect both non-pgo and pgo cases. For non-pgo, set OSR to trigger immediately
when any patchpoint is hit to maximize number of cases collected. For PGO, set
OSR to trigger once we've got a bit of profile data gathered by the Tier0 method.

Collect both non-pgo and pgo cases. For non-pgo, set OSR to trigger immediately
when any patchpoint is hit to maximize number of cases collected. For PGO, set
OSR to trigger once we've got a bit of profile data gathered by the Tier0 method.
@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Dec 10, 2021
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @JulieLeeMSFT
See info in area-owners.md if you want to be subscribed.

Issue Details

Collect both non-pgo and pgo cases. For non-pgo, set OSR to trigger immediately
when any patchpoint is hit to maximize number of cases collected. For PGO, set
OSR to trigger once we've got a bit of profile data gathered by the Tier0 method.

Author:AndyAyersMS
Assignees:-
Labels:

area-CodeGen-coreclr

Milestone:-

@AndyAyersMS

Copy link
Copy Markdown
MemberAuthor

cc @dotnet/jit-contrib

Recent collection stats:

Grouped Flag Appearances (67959 contexts)
bits count percent parsed
0000000048820000 134 0.20% FEATURE_SIMD SKIP_VERIFICATION IL_STUB BBOPT
0000000248820000 77 0.11% FEATURE_SIMD SKIP_VERIFICATION IL_STUB BBOPT PUBLISH_SECRET_PARAM
0000006248820000 1 0.00% FEATURE_SIMD SKIP_VERIFICATION IL_STUB BBOPT PUBLISH_SECRET_PARAM REVERSE_PINVOKE TRACK_TRANSITIONS
0000008000820010 17640 25.96% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION TIER0
0000008020820010 18451 27.15% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBINSTR TIER0
0000000040820010 3844 5.66% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT
c800000040820010 19 0.03% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT HAS_PGO HAS_EDGE_PROFILE HAS_STATIC_PROFILE
d800000040820010 3 0.00% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT HAS_PGO HAS_EDGE_PROFILE HAS_LIKELY_CLASS HAS_STATIC_PROFILE
0000010040820010 6681 9.83% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT TIER1
8400010040820010 786 1.16% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT TIER1 HAS_PGO HAS_DYNAMIC_PROFILE
a400010040820010 401 0.59% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT TIER1 HAS_PGO HAS_CLASS_PROFILE HAS_DYNAMIC_PROFILE
c400010040820010 11733 17.26% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT TIER1 HAS_PGO HAS_EDGE_PROFILE HAS_DYNAMIC_PROFILE
c800010040820010 1255 1.85% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT TIER1 HAS_PGO HAS_EDGE_PROFILE HAS_STATIC_PROFILE
d800010040820010 515 0.76% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT TIER1 HAS_PGO HAS_EDGE_PROFILE HAS_LIKELY_CLASS HAS_STATIC_PROFILE
e400010040820010 4838 7.12% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT TIER1 HAS_PGO HAS_EDGE_PROFILE HAS_CLASS_PROFILE HAS_DYNAMIC_PROFILE
0000002040820010 1 0.00% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT REVERSE_PINVOKE
0000008080820010 59 0.09% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION FRAMED TIER0
00000080a0820010 59 0.09% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBINSTR FRAMED TIER0
00000000c0820010 8 0.01% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT FRAMED
00000100c0820010 32 0.05% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT FRAMED TIER1
84000100c0820010 2 0.00% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT FRAMED TIER1 HAS_PGO HAS_DYNAMIC_PROFILE
a4000100c0820010 1 0.00% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT FRAMED TIER1 HAS_PGO HAS_CLASS_PROFILE HAS_DYNAMIC_PROFILE
c4000100c0820010 50 0.07% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT FRAMED TIER1 HAS_PGO HAS_EDGE_PROFILE HAS_DYNAMIC_PROFILE
c8000100c0820010 6 0.01% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT FRAMED TIER1 HAS_PGO HAS_EDGE_PROFILE HAS_STATIC_PROFILE
e4000100c0820010 5 0.01% DEBUG_INFO FEATURE_SIMD SKIP_VERIFICATION BBOPT FRAMED TIER1 HAS_PGO HAS_EDGE_PROFILE HAS_CLASS_PROFILE HAS_DYNAMIC_PROFILE
0000010040822010 1237 1.82% DEBUG_INFO OSR FEATURE_SIMD SKIP_VERIFICATION BBOPT TIER1
8400010060822010 89 0.13% DEBUG_INFO OSR FEATURE_SIMD SKIP_VERIFICATION BBINSTR BBOPT TIER1 HAS_PGO HAS_DYNAMIC_PROFILE
a400010060822010 29 0.04% DEBUG_INFO OSR FEATURE_SIMD SKIP_VERIFICATION BBINSTR BBOPT TIER1 HAS_PGO HAS_CLASS_PROFILE HAS_DYNAMIC_PROFILE
00000100c0822010 2 0.00% DEBUG_INFO OSR FEATURE_SIMD SKIP_VERIFICATION BBOPT FRAMED TIER1
0000000000820030 1 0.00% DEBUG_INFO MIN_OPT FEATURE_SIMD SKIP_VERIFICATION
Individual Flag Appearances
67747 99.69% DEBUG_INFO
1 0.00% MIN_OPT
1357 2.00% OSR
67959 100.00% FEATURE_SIMD
67959 100.00% SKIP_VERIFICATION
212 0.31% IL_STUB
18628 27.41% BBINSTR
31749 46.72% BBOPT
224 0.33% FRAMED
78 0.11% PUBLISH_SECRET_PARAM
2 0.00% REVERSE_PINVOKE
1 0.00% TRACK_TRANSITIONS
36209 53.28% TIER0
27662 40.70% TIER1
17934 26.39% HAS_DYNAMIC_PROFILE
1798 2.65% HAS_STATIC_PROFILE
518 0.76% HAS_LIKELY_CLASS
5274 7.76% HAS_CLASS_PROFILE
18424 27.11% HAS_EDGE_PROFILE
19732 29.04% HAS_PGO

# note tricks to get one element tuples

runtime_options_list = [("Dummy=0",), ("TieredCompilation=0", ), ("TieredPGO=1", "TC_QuickJitForLoops=1"), ("TieredPGO=1", "TC_QuickJitForLoops=1", "ReadyToRun=0")]
runtime_options_list = [("Dummy=0",), ("TieredCompilation=0", ), ("TieredPGO=1", "TC_QuickJitForLoops=1"), ("TieredPGO=1", "TC_QuickJitForLoops=1", "ReadyToRun=0"),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should first items have TC_OnStackReplacement=0 as you're planning to enable it by default?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose so, though with the current defaults (~50,000 hits to patchpoints before a transition) very few methods will end up with OSR. In practice it won't make much difference.

The bigger impact will be from changing the default for QJFL.

@AndyAyersMS

Copy link
Copy Markdown
MemberAuthor

Note this means that if we alter the format of PatchpointInfo we might want to bump the jit GUID.

Or at least, trigger a new collection.

I don't expect PatchpointInfo to change often, but it likely will change some when Arm64 support is introduced.

@AndyAyersMS
AndyAyersMS merged commit fe4cb9a into dotnet:mainDec 11, 2021
@ghostghost locked as resolved and limited conversation to collaborators Jan 10, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@AndyAyersMS@EgorBo@BruceForstall