Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

superpmi-diffs failures/timeouts #76542

Closed
jakobbotsch opened this issue Oct 3, 2022 · 3 comments · Fixed by #76544
Closed

superpmi-diffs failures/timeouts #76542

jakobbotsch opened this issue Oct 3, 2022 · 3 comments · Fixed by #76544
Assignees
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone

Comments

@jakobbotsch
Copy link
Member

There are quite a few failures in superpmi-diffs:
https://dev.azure.com/dnceng-public/public/_build/results?buildId=38383&view=results

They look related to my recent changes:

[05:53:33] Total instructions executed by base: 228005614998

[05:53:33] Total instructions executed by diff: 228005774156

[05:53:33] Total instructions executed delta: 159158 (0.00% of base)

[05:53:33] Running throughput diff of C:\h\w\C7D40AC4\p\artifacts\spmi\mch\eb8352bd-0a13-4b5b-badb-58f9ecc40c44.Linux.x64\libraries_tests.pmi.Linux.x64.checked.mch

[05:53:33] Invoking: C:\h\w\C7D40AC4\p\artifacts\spmi\pintools\1.0\windows\pin.exe -follow_execv -t C:\h\w\C7D40AC4\p\artifacts\spmi\pintools\1.0\windows\clrjit_inscount_x64\clrjit_inscount.dll -quiet -- C:\h\w\C7D40AC4\p\superpmi.exe -applyDiff -baseMetricsSummary C:\h\w\C7D40AC4\t\tmpitoan9nv\libraries_tests.pmi.Linux.x64.checked.mch_base_metrics.csv -diffMetricsSummary C:\h\w\C7D40AC4\t\tmpitoan9nv\libraries_tests.pmi.Linux.x64.checked.mch_diff_metrics.csv -p -failureLimit 100 C:\h\w\C7D40AC4\p\base\release\clrjit_unix_x64_x64.dll C:\h\w\C7D40AC4\p\diff\release\clrjit_unix_x64_x64.dll C:\h\w\C7D40AC4\p\artifacts\spmi\mch\eb8352bd-0a13-4b5b-badb-58f9ecc40c44.Linux.x64\libraries_tests.pmi.Linux.x64.checked.mch

[05:59:20] Using child (C:\h\w\C7D40AC4\p\superpmi.exe) with args ( -applyDiff C:\h\w\C7D40AC4\p\base\release\clrjit_unix_x64_x64.dll C:\h\w\C7D40AC4\p\diff\release\clrjit_unix_x64_x64.dll C:\h\w\C7D40AC4\p\artifacts\spmi\mch\eb8352bd-0a13-4b5b-badb-58f9ecc40c44.Linux.x64\libraries_tests.pmi.Linux.x64.checked.mch)

[05:59:20]  workerCount=4, skipCleanup=0.

[05:59:20] Loaded 330299  Jitted 330299  FailedCompile 0 Excluded 0 Missing 0 Diffs 0

[05:59:20] Total time: 345701.861700ms

[05:59:20] return_code: 0

[05:59:20] Total instructions executed by base: 465984195367

[05:59:20] Total instructions executed by diff: 465984616757

[05:59:20] Total instructions executed delta: 421390 (0.00% of base)

[05:59:20] Throughput diff summary:


Traceback (most recent call last):

  File "C:\h\w\C7D40AC4\p\superpmi.py", line 4371, in <module>

    sys.exit(main(args))

  File "C:\h\w\C7D40AC4\p\superpmi.py", line 4293, in main

    success = tp_diff.replay_with_throughput_diff()

  File "C:\h\w\C7D40AC4\p\superpmi.py", line 2249, in replay_with_throughput_diff

    if any(is_significant(row, base, diff) for row in ["Overall", "MinOpts", "FullOpts"] for (_, base, diff) in tp_diffs):

  File "C:\h\w\C7D40AC4\p\superpmi.py", line 2249, in <genexpr>

    if any(is_significant(row, base, diff) for row in ["Overall", "MinOpts", "FullOpts"] for (_, base, diff) in tp_diffs):

  File "C:\h\w\C7D40AC4\p\superpmi.py", line 2239, in is_significant

    return is_significant_pct(int(base[row]["Diff executed instructions"]), int(diff[row]["Diff executed instructions"]))

  File "C:\h\w\C7D40AC4\p\superpmi.py", line 2237, in is_significant_pct

    return round((diff - base) / base * 100, 2) != 0

ZeroDivisionError: division by zero

I think I only added correct handling for asmdiffs here and forgot it for tpdiff.

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Oct 3, 2022
@jakobbotsch jakobbotsch self-assigned this Oct 3, 2022
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Oct 3, 2022
@jakobbotsch jakobbotsch added this to the 8.0.0 milestone Oct 3, 2022
@ghost
Copy link

ghost commented Oct 3, 2022

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

Issue Details

There are quite a few failures in superpmi-diffs:
https://dev.azure.com/dnceng-public/public/_build/results?buildId=38383&view=results

They look related to my recent changes:

[05:53:33] Total instructions executed by base: 228005614998

[05:53:33] Total instructions executed by diff: 228005774156

[05:53:33] Total instructions executed delta: 159158 (0.00% of base)

[05:53:33] Running throughput diff of C:\h\w\C7D40AC4\p\artifacts\spmi\mch\eb8352bd-0a13-4b5b-badb-58f9ecc40c44.Linux.x64\libraries_tests.pmi.Linux.x64.checked.mch

[05:53:33] Invoking: C:\h\w\C7D40AC4\p\artifacts\spmi\pintools\1.0\windows\pin.exe -follow_execv -t C:\h\w\C7D40AC4\p\artifacts\spmi\pintools\1.0\windows\clrjit_inscount_x64\clrjit_inscount.dll -quiet -- C:\h\w\C7D40AC4\p\superpmi.exe -applyDiff -baseMetricsSummary C:\h\w\C7D40AC4\t\tmpitoan9nv\libraries_tests.pmi.Linux.x64.checked.mch_base_metrics.csv -diffMetricsSummary C:\h\w\C7D40AC4\t\tmpitoan9nv\libraries_tests.pmi.Linux.x64.checked.mch_diff_metrics.csv -p -failureLimit 100 C:\h\w\C7D40AC4\p\base\release\clrjit_unix_x64_x64.dll C:\h\w\C7D40AC4\p\diff\release\clrjit_unix_x64_x64.dll C:\h\w\C7D40AC4\p\artifacts\spmi\mch\eb8352bd-0a13-4b5b-badb-58f9ecc40c44.Linux.x64\libraries_tests.pmi.Linux.x64.checked.mch

[05:59:20] Using child (C:\h\w\C7D40AC4\p\superpmi.exe) with args ( -applyDiff C:\h\w\C7D40AC4\p\base\release\clrjit_unix_x64_x64.dll C:\h\w\C7D40AC4\p\diff\release\clrjit_unix_x64_x64.dll C:\h\w\C7D40AC4\p\artifacts\spmi\mch\eb8352bd-0a13-4b5b-badb-58f9ecc40c44.Linux.x64\libraries_tests.pmi.Linux.x64.checked.mch)

[05:59:20]  workerCount=4, skipCleanup=0.

[05:59:20] Loaded 330299  Jitted 330299  FailedCompile 0 Excluded 0 Missing 0 Diffs 0

[05:59:20] Total time: 345701.861700ms

[05:59:20] return_code: 0

[05:59:20] Total instructions executed by base: 465984195367

[05:59:20] Total instructions executed by diff: 465984616757

[05:59:20] Total instructions executed delta: 421390 (0.00% of base)

[05:59:20] Throughput diff summary:


Traceback (most recent call last):

  File "C:\h\w\C7D40AC4\p\superpmi.py", line 4371, in <module>

    sys.exit(main(args))

  File "C:\h\w\C7D40AC4\p\superpmi.py", line 4293, in main

    success = tp_diff.replay_with_throughput_diff()

  File "C:\h\w\C7D40AC4\p\superpmi.py", line 2249, in replay_with_throughput_diff

    if any(is_significant(row, base, diff) for row in ["Overall", "MinOpts", "FullOpts"] for (_, base, diff) in tp_diffs):

  File "C:\h\w\C7D40AC4\p\superpmi.py", line 2249, in <genexpr>

    if any(is_significant(row, base, diff) for row in ["Overall", "MinOpts", "FullOpts"] for (_, base, diff) in tp_diffs):

  File "C:\h\w\C7D40AC4\p\superpmi.py", line 2239, in is_significant

    return is_significant_pct(int(base[row]["Diff executed instructions"]), int(diff[row]["Diff executed instructions"]))

  File "C:\h\w\C7D40AC4\p\superpmi.py", line 2237, in is_significant_pct

    return round((diff - base) / base * 100, 2) != 0

ZeroDivisionError: division by zero

I think I only added correct handling for asmdiffs here and forgot it for tpdiff.

Author: jakobbotsch
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@ghost ghost removed the untriaged New issue has not been triaged by the area owner label Oct 3, 2022
@jakobbotsch
Copy link
Member Author

This change is some weeks old at this point though, it is odd we only hit it now, I wonder if something else also changed.

@jakobbotsch
Copy link
Member Author

Current libraries.crossgen2 collection has 0 minopts contexts which is why we hit the problem. I'm not sure why there were any minopts contexts before, seems odd.

jakobbotsch added a commit to jakobbotsch/runtime that referenced this issue Oct 3, 2022
With the MinOpts/FullOpts split it is common/expected to see some of
these being completely empty, and we hit DivisionByZero in those cases.

Fix dotnet#76542
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Oct 3, 2022
jakobbotsch added a commit that referenced this issue Oct 3, 2022
With the MinOpts/FullOpts split it is common/expected to see some of
these being completely empty, and we hit DivisionByZero in those cases.

Fix #76542
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Oct 3, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Nov 3, 2022
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant