-
Notifications
You must be signed in to change notification settings - Fork 12.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
Use self profile infrastructure for -Z time and -Z time-passes #67777
Conversation
This comment has been minimized.
This comment has been minimized.
☔ The latest upstream changes (presumably #67700) made this pull request unmergeable. Please resolve the merge conflicts. |
I think the indentation is useful. Is there some way to re-introduce it? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
r=me when rebased |
@bjorn3 Indentation doesn't work with multi-threading though. If you want a better overview you can use |
@bors r=wesleywiser |
📌 Commit 19e37c4 has been approved by |
Use self profile infrastructure for -Z time and -Z time-passes There's no longer indentation for -Z time and -Z time-passes and duplicate timers between self profiling and -Z time-passes have been removed. r? @wesleywiser
Use self profile infrastructure for -Z time and -Z time-passes There's no longer indentation for -Z time and -Z time-passes and duplicate timers between self profiling and -Z time-passes have been removed. r? @wesleywiser
Rollup of 5 pull requests Successful merges: - #67636 (allow rustfmt key in [build] section) - #67736 (Less-than is asymmetric, not antisymmetric) - #67762 (Add missing links for insecure_time) - #67777 (Use self profile infrastructure for -Z time and -Z time-passes) - #67807 (Use drop instead of the toilet closure `|_| ()`) Failed merges: r? @ghost
☔ The latest upstream changes (presumably #67853) made this pull request unmergeable. Please resolve the merge conflicts. |
@bors r=wesleywiser |
📌 Commit 1fb4b076368d4ab21550955e2b429874097d3967 has been approved by |
🔒 Merge conflict This pull request and the master branch diverged in a way that cannot be automatically merged. Please rebase on top of the latest master branch, and let the reviewer approve again. How do I rebase?Assuming
You may also read Git Rebasing to Resolve Conflicts by Drew Blessing for a short tutorial. Please avoid the "Resolve conflicts" button on GitHub. It uses Sometimes step 4 will complete without asking for resolution. This is usually due to difference between how Error message
|
☔ The latest upstream changes (presumably #67803) made this pull request unmergeable. Please resolve the merge conflicts. |
@bors r=wesleywiser |
📌 Commit 5a485ce has been approved by |
Use self profile infrastructure for -Z time and -Z time-passes There's no longer indentation for -Z time and -Z time-passes and duplicate timers between self profiling and -Z time-passes have been removed. r? @wesleywiser
☀️ Test successful - checks-azure |
I wished this had been coordinated with #67397, which is now broken. It also regressed the event cleanup, introducing duplicate events (e.g. "indexing HIR" vs "build_hir_map") and adds a separate line for each codegen unit again (e.g. in https://perf.rust-lang.org/detailed-query.html?commit=33640f0e03af2fb31ce380d5389d5545f24ce29a&benchmark=syn-opt&run_name=baseline%20incremental). Self-profiling has more restrictions and is more user-facing than |
@Zoxc & @wesleywiser: I'm proposing to revert this PR. It breaks the ongoing self-profiling work and perf.rlo detail views. It also doesn't look like a clean integration of the two features with no clear distinction of what should be a generic activity, what a sparse pass and what a generic pass. I think time-passes and self-profiling can use the same infrastructure at some point but now is too early. |
@michaelwoerister How does it break #67397? I don't see anything that would conflict. And if our tooling can't handle more events yet we could just leave the pass events off by default? |
I suggest that we:
I've been using self-profiling with |
I gave my reasoning for going with names without spaces here: #65208 (comment) New event IDs are not a problem. The tooling can handle that if parameters are handled correctly. For new event kinds things are trickier, some tooling might crash when encountering new kinds, some might ignore them and give wrong numbers. I'm OK with the steps you suggest if we also
I also think it would be good get rid of the |
After some private discussion with @nikomatsakis and @michaelwoerister , I am inclined to revert this PR, mainly based on it regressing perf.rlo detailed view as noted by @michaelwoerister, namely the rows prefixed with "codegen passes" in perf link:
|
Update to previous comment: @michaelwoerister has just pointed out to me that the recently posted PR #67988 might contain a fix to the issue here. I'll wait for more information on that before proceeding with a revert of PR #67777 |
Compile some CGUs in parallel at the start of codegen This brings the compilation time for `syntex_syntax` from 11.542s to 10.453s with 6 threads in non-incremental debug mode. Just compiling `n` CGUs in parallel at the beginning of codegen seems sufficient to get rid of the staircase effect, at least for `syntex_syntax`. Based on rust-lang#67777. r? @michaelwoerister cc @alexcrichton @Mark-Simulacrum
Compile some CGUs in parallel at the start of codegen This brings the compilation time for `syntex_syntax` from 11.542s to 10.453s with 6 threads in non-incremental debug mode. Just compiling `n` CGUs in parallel at the beginning of codegen seems sufficient to get rid of the staircase effect, at least for `syntex_syntax`. Based on rust-lang#67777. r? @michaelwoerister cc @alexcrichton @Mark-Simulacrum
Compile some CGUs in parallel at the start of codegen This brings the compilation time for `syntex_syntax` from 11.542s to 10.453s with 6 threads in non-incremental debug mode. Just compiling `n` CGUs in parallel at the beginning of codegen seems sufficient to get rid of the staircase effect, at least for `syntex_syntax`. Based on rust-lang#67777. r? @michaelwoerister cc @alexcrichton @Mark-Simulacrum
The removal of indentation is very unfortunate. It makes the output much harder to interpret. There's not really any point having stacks of indented timers if the output doesn't indicate them. |
There's no longer indentation for -Z time and -Z time-passes and duplicate timers between self profiling and -Z time-passes have been removed.
r? @wesleywiser