-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SPMI with JitNoInline=1
asserts in instrumentation code
#74718
Comments
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsReproduction: run an SPMI replay of the Expected result: clean replay. Actual result:
Preceded by a number of
|
Different inlining decisions in general will cause a different PGO schema to have to be allocated for optimized code with instrumentation. This seems like a bug in SPMI. |
@jakobbotsch We're getting checked/release asm diffs on x64/arm64 with:
https://dev.azure.com/dnceng-public/public/_build/results?buildId=88241&view=results (if this is a separate problem, we can split this to its own issue) |
@BruceForstall are these actually diffs or "just" failures? I did see these a couple of weeks ago, but I assumed it was due to recent inliner changes between the time of the collection and the time when superpmi-asmdiffs-checked-release runs (#77600, #77845, #78386). So I assumed it would stabilize again. However now that I think about it, that should have also caused |
Also, as Andy pointed out recently, we wouldn't expect inlining to even alter the schema currently, so something is definitely strange here. |
Actually, it seems like |
The difference is that the particular context sets |
Fallback to doing actual layout of the schema data when the schema does not match the recorded schema. This ensures replays are still consistent with the recording in cases where the JIT and environment variables match, but that we can still succeed a replay on changes to these. Fix dotnet#74718
Fallback to doing actual layout of the schema data when the schema does not match the recorded schema. This ensures replays are still consistent with the recording in cases where the JIT and environment variables match, but that we can still succeed a replay on changes to these. Fix #74718
Reproduction: run an SPMI replay of the
aspnet
collection with-jitoption JitNoInline=1
.Expected result: clean replay.
Actual result:
Preceded by a number of
ERROR: AllocPgoInstrumentationBySchema mismatch
.JitNoInline
can be a nice setting to verify changes "modulo inlining", it would be nice to keep it assert-free.The text was updated successfully, but these errors were encountered: