Skip to content
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

[WIP] rustc_span: Symbol perf experiments #80420

Closed
wants to merge 7 commits into from

Conversation

petrochenkov
Copy link
Contributor

cc #79425

@rust-highfive
Copy link
Collaborator

r? @varkor

(rust-highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Dec 27, 2020
@petrochenkov
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion.

@bors
Copy link
Contributor

bors commented Dec 27, 2020

⌛ Trying commit 8d21ca5460f295a97a5517b96dc19d278ef1e65d with merge f2658af4ef876e20781bd9d367daa3d4b5d56fef...

@petrochenkov petrochenkov added S-waiting-on-perf Status: Waiting on a perf run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 27, 2020
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-9 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
.................................................................................................... 9000/11195
.................................................................................................... 9100/11195
.....................................................................................i......i....... 9200/11195
.................................................................................................... 9300/11195
........................iiiiii..iiiiii.i............................................................ 9400/11195
.................................................................................................... 9600/11195
.................................................................................................... 9700/11195
.................................................................................................... 9800/11195
.................................................................................................... 9900/11195
---
Suite("src/test/assembly") not skipped for "bootstrap::test::Assembly" -- not in ["src/tools/tidy"]
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 27 tests
iiiiiiiiiiiiiiiiiiiiiiiiiii
Suite("src/test/incremental") not skipped for "bootstrap::test::Incremental" -- not in ["src/tools/tidy"]

 finished in 0.079 seconds
Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/debuginfo") not skipped for "bootstrap::test::Debuginfo" -- not in ["src/tools/tidy"]
Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 116 tests
iiiiiiiiii.i.i..i..i....ii...ii....ii..........iiii...........i...i...i.......ii.i.ii.....iiii.....i 100/116
test result: ok. 78 passed; 0 failed; 38 ignored; 0 measured; 0 filtered out; finished in 2.41s

 finished in 2.495 seconds
Suite("src/test/ui-fulldeps") not skipped for "bootstrap::test::UiFullDeps" -- not in ["src/tools/tidy"]
---
running 5 tests
FFF..
failures:

---- symbols::tests::check_dup_keywords stdout ----
thread 'symbols::tests::check_dup_keywords' panicked at 'duplicate key `"crate"`', /cargo/registry/src/github.com-1ecc6299db9ec823/phf_codegen-0.8.0/src/lib.rs:203:17
---- symbols::tests::check_dup_symbol_and_keyword stdout ----
---- symbols::tests::check_dup_symbol_and_keyword stdout ----
thread 'symbols::tests::check_dup_symbol_and_keyword' panicked at 'duplicate key `"splat"`', /cargo/registry/src/github.com-1ecc6299db9ec823/phf_codegen-0.8.0/src/lib.rs:203:17

---- symbols::tests::check_dup_symbol stdout ----
---- symbols::tests::check_dup_symbol stdout ----
thread 'symbols::tests::check_dup_symbol' panicked at 'duplicate key `"splat"`', /cargo/registry/src/github.com-1ecc6299db9ec823/phf_codegen-0.8.0/src/lib.rs:203:17

failures:
    symbols::tests::check_dup_keywords
    symbols::tests::check_dup_symbol
    symbols::tests::check_dup_symbol
    symbols::tests::check_dup_symbol_and_keyword

test result: FAILED. 2 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.02s

error: test failed, to rerun pass '-p rustc_macros --lib'


command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "16" "--release" "--locked" "--color" "always" "--features" " llvm" "--manifest-path" "/checkout/compiler/rustc/Cargo.toml" "-p" "rustc_macros" "--" "--quiet"


failed to run: /checkout/obj/build/bootstrap/debug/bootstrap --stage 2 test --exclude src/tools/tidy
Build completed unsuccessfully in 0:27:43

@bors
Copy link
Contributor

bors commented Dec 27, 2020

☀️ Try build successful - checks-actions
Build commit: f2658af4ef876e20781bd9d367daa3d4b5d56fef (f2658af4ef876e20781bd9d367daa3d4b5d56fef)

@rust-timer
Copy link
Collaborator

Queued f2658af4ef876e20781bd9d367daa3d4b5d56fef with parent 76188b6, future comparison URL.

@rustbot label: +S-waiting-on-perf

@rust-timer
Copy link
Collaborator

Finished benchmarking try commit (f2658af4ef876e20781bd9d367daa3d4b5d56fef): comparison url.

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying rollup- to bors.

Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up.

@bors rollup=never
@rustbot label: +S-waiting-on-review -S-waiting-on-perf

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Dec 27, 2020
@bjorn3
Copy link
Member

bjorn3 commented Dec 28, 2020

Up to 3.7% slowdown.

@petrochenkov
Copy link
Contributor Author

The results from slowing down Symbol::intern only (#80420 (comment)) are nearly identical to the results from the whole #79425 (#79425 (comment)), so the hypothesis in #79425 (comment) should be correct.

This means we either need a faster Symbol::static_intern, or a higher percent of hits in Symbol::static_intern to compensate for the potential second search.

@petrochenkov
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion.

@bors
Copy link
Contributor

bors commented Dec 28, 2020

⌛ Trying commit 7a85c533c293cd159937faf7e095848570a913d0 with merge 6d5202ee390b147711c841482f99201f2ee6ed58...

@petrochenkov petrochenkov added S-waiting-on-perf Status: Waiting on a perf run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 28, 2020
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-9 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
.................................................................................................... 9000/11195
.................................................................................................... 9100/11195
.....................................................................................i......i....... 9200/11195
.................................................................................................... 9300/11195
........................iiiiii..iiiiii.i............................................................ 9400/11195
.................................................................................................... 9600/11195
.................................................................................................... 9700/11195
.................................................................................................... 9800/11195
.................................................................................................... 9900/11195
---
Suite("src/test/assembly") not skipped for "bootstrap::test::Assembly" -- not in ["src/tools/tidy"]
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 27 tests
iiiiiiiiiiiiiiiiiiiiiiiiiii

 finished in 0.062 seconds
Suite("src/test/incremental") not skipped for "bootstrap::test::Incremental" -- not in ["src/tools/tidy"]
Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/debuginfo") not skipped for "bootstrap::test::Debuginfo" -- not in ["src/tools/tidy"]
Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 116 tests
iiiiiiiiii.i.i..i..i..ii....i.i....ii..........iiii.........i.....i...i.......ii.i.ii.....iiii.....i 100/116
test result: ok. 78 passed; 0 failed; 38 ignored; 0 measured; 0 filtered out; finished in 2.33s

 finished in 2.394 seconds
Suite("src/test/ui-fulldeps") not skipped for "bootstrap::test::UiFullDeps" -- not in ["src/tools/tidy"]
---
running 5 tests
FFF..
failures:

---- symbols::tests::check_dup_symbol_and_keyword stdout ----
thread 'symbols::tests::check_dup_symbol_and_keyword' panicked at 'duplicate key `"splat"`', /cargo/registry/src/github.com-1ecc6299db9ec823/phf_codegen-0.8.0/src/lib.rs:203:17
---- symbols::tests::check_dup_keywords stdout ----
---- symbols::tests::check_dup_keywords stdout ----
thread 'symbols::tests::check_dup_keywords' panicked at 'duplicate key `"crate"`', /cargo/registry/src/github.com-1ecc6299db9ec823/phf_codegen-0.8.0/src/lib.rs:203:17
---- symbols::tests::check_dup_symbol stdout ----
---- symbols::tests::check_dup_symbol stdout ----
thread 'symbols::tests::check_dup_symbol' panicked at 'duplicate key `"splat"`', /cargo/registry/src/github.com-1ecc6299db9ec823/phf_codegen-0.8.0/src/lib.rs:203:17


failures:
    symbols::tests::check_dup_keywords
    symbols::tests::check_dup_keywords
    symbols::tests::check_dup_symbol
    symbols::tests::check_dup_symbol_and_keyword

test result: FAILED. 2 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.82s

error: test failed, to rerun pass '-p rustc_macros --lib'


command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "16" "--release" "--locked" "--color" "always" "--features" " llvm" "--manifest-path" "/checkout/compiler/rustc/Cargo.toml" "-p" "rustc_macros" "--" "--quiet"


failed to run: /checkout/obj/build/bootstrap/debug/bootstrap --stage 2 test --exclude src/tools/tidy
Build completed unsuccessfully in 0:26:08

@bors
Copy link
Contributor

bors commented Dec 28, 2020

☀️ Try build successful - checks-actions
Build commit: 6d5202ee390b147711c841482f99201f2ee6ed58 (6d5202ee390b147711c841482f99201f2ee6ed58)

@rust-timer
Copy link
Collaborator

Queued 6d5202ee390b147711c841482f99201f2ee6ed58 with parent aef92d4, future comparison URL.

@rustbot label: +S-waiting-on-perf

@rust-timer
Copy link
Collaborator

Finished benchmarking try commit (6d5202ee390b147711c841482f99201f2ee6ed58): comparison url.

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying rollup- to bors.

Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up.

@bors rollup=never
@rustbot label: +S-waiting-on-review -S-waiting-on-perf

@rust-timer
Copy link
Collaborator

Queued 9552eb5d4fde685ead823b14a7ec197603502200 with parent e226704, future comparison URL.

@rustbot label: +S-waiting-on-perf

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Dec 30, 2020
@petrochenkov petrochenkov removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 31, 2020
@rust-timer
Copy link
Collaborator

Finished benchmarking try commit (9552eb5d4fde685ead823b14a7ec197603502200): comparison url.

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying rollup- to bors.

Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up.

@bors rollup=never
@rustbot label: +S-waiting-on-review -S-waiting-on-perf

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Dec 31, 2020
@bjorn3
Copy link
Member

bjorn3 commented Dec 31, 2020

Most changes are now within noise but overall it is a slight (<0.1%) improvement.

@petrochenkov petrochenkov added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Dec 31, 2020
@petrochenkov
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion.

@bors
Copy link
Contributor

bors commented Jan 1, 2021

⌛ Trying commit 8809118 with merge 5d62d7cb25649b110a890b314aa67bb788879011...

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-9 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
.................................................................................................... 9000/11238
.................................................................................................... 9100/11238
.................................................................................................... 9200/11238
..................................i......i.......................................................... 9300/11238
.........................................................................iiiiii..iiiiii.i........... 9400/11238
.................................................................................................... 9600/11238
.................................................................................................... 9700/11238
.................................................................................................... 9800/11238
.................................................................................................... 9900/11238
---
Suite("src/test/assembly") not skipped for "bootstrap::test::Assembly" -- not in ["src/tools/tidy"]
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 27 tests
iiiiiiiiiiiiiiiiiiiiiiiiiii

Suite("src/test/incremental") not skipped for "bootstrap::test::Incremental" -- not in ["src/tools/tidy"]
 finished in 0.097 seconds
Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/debuginfo") not skipped for "bootstrap::test::Debuginfo" -- not in ["src/tools/tidy"]
Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 116 tests
iiiiiiiiii.i.i..i...i.ii....i.i....ii...........iiii........i.....i...i.......ii.i.ii.....iiii.....i 100/116
test result: ok. 78 passed; 0 failed; 38 ignored; 0 measured; 0 filtered out; finished in 2.42s

 finished in 2.502 seconds
Suite("src/test/ui-fulldeps") not skipped for "bootstrap::test::UiFullDeps" -- not in ["src/tools/tidy"]
---

   Doc-tests alloc

running 540 tests
double free or corruption (!prev)
error: test failed, to rerun pass '--doc'


command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "16" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/library/test/Cargo.toml" "-p" "alloc" "--" "--quiet"


failed to run: /checkout/obj/build/bootstrap/debug/bootstrap --stage 2 test --exclude src/tools/tidy
Build completed unsuccessfully in 0:19:57

@bors
Copy link
Contributor

bors commented Jan 1, 2021

☀️ Try build successful - checks-actions
Build commit: 5d62d7cb25649b110a890b314aa67bb788879011 (5d62d7cb25649b110a890b314aa67bb788879011)

@rust-timer
Copy link
Collaborator

Queued 5d62d7cb25649b110a890b314aa67bb788879011 with parent a609fb4, future comparison URL.

@rustbot label: +S-waiting-on-perf

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jan 1, 2021
@rust-timer
Copy link
Collaborator

Finished benchmarking try commit (5d62d7cb25649b110a890b314aa67bb788879011): comparison url.

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. Please note that if the perf results are neutral, you should likely undo the rollup=never given below by specifying rollup- to bors.

Importantly, though, if the results of this run are non-neutral do not roll this PR up -- it will mask other regressions or improvements in the roll up.

@bors rollup=never
@rustbot label: +S-waiting-on-review -S-waiting-on-perf

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Jan 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants