Uh oh!
There was an error while loading. Please reload this page.
JIT: arm64 osr funclet frame probing - #70916
Conversation
ghost
commented
Jun 17, 2022
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsWe currently need to pad OSR funclet frames with the full size of the Longer term the plan is to revise arm64 OSR so we will not need to Fixes #70263.
|
AndyAyersMS
commented
Jun 17, 2022
@BruceForstall PTAL |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
BruceForstall
commented
Jun 17, 2022
Can you show what the funclet prolog from #70263 (comment) looks like with this change? |
BruceForstall
commented
Jun 17, 2022
What about the |
jakobbotsch
commented
Jun 17, 2022
"Frame type 5" is already quite broken, see #66089. |
AndyAyersMS
commented
Jun 18, 2022
Old/new prologs
|
AndyAyersMS
commented
Jun 18, 2022
/azp run runtime-coreclr superpmi-diffs |
AndyAyersMS
commented
Jun 18, 2022
/azp run runtime-coreclr superpmi-replay |
|
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
|
Azure Pipelines successfully started running 1 pipeline(s). |
AndyAyersMS
commented
Jun 18, 2022
caught up in the guid change |
Libraries failure looks like a gc hole perhaps: This is on x64 -- this PR only changes arm64 codegen, so expect this is unrelated. |
jkotas
commented
Jun 18, 2022
|
jakobbotsch
commented
Jun 18, 2022
/azp run runtime-coreclr superpmi-diffs, runtime-coreclr superpmi-replay |
|
Azure Pipelines successfully started running 2 pipeline(s). |
BruceForstall
commented
Jun 21, 2022
You should rebase after #70922, and I think you need the same change for fiFrameType=5. |
AndyAyersMS
commented
Jun 21, 2022
Ok. You don't mind that I am repurposing I really need to revise arm64 to not need this crazy funclet padding, but it feels a bit risky to try doing that now. |
BruceForstall
commented
Jun 21, 2022
It seems ok, since |
We currently need to pad OSR funclet frames with the full size of the Tier0 frame, and this paddign sits above the register save area. For large Tier0 frames we thus need to probe the stack in the OSR prolog for type1 and type3 frames, before doing the initial SP adjustment and save. Longer term the plan is to revise arm64 OSR so we will not need to do this padding; at that point we can remove this extra probing. Fixesdotnet#70263.
AndyAyersMS
commented
Jun 22, 2022
/azp run runtime-jit-experimental |
|
Azure Pipelines successfully started running 1 pipeline(s). |
AndyAyersMS
commented
Jun 22, 2022
Failure looks like #69474 |
AndyAyersMS
commented
Jun 23, 2022
Jit-experimental was clean other than an OSX timeout. Other parts of this pipeline run the Github_21990 test case under OSR stress, and it's been consistently failing there on arm64 for a long time. |
We currently need to pad OSR funclet frames with the full size of the
Tier0 frame, and this padding sits above the register save area. For
large Tier0 frames we thus need to probe the stack in the OSR prolog
for type1 and type3 frames, before doing the initial SP adjustment and
save.
Longer term the plan is to revise arm64 OSR so we will not need to
do this padding; at that point we can remove this extra probing.
Fixes#70263.