Skip to content

Commit 9804362

Browse files
committed
Finished triage for this week.
1 parent c8204d2 commit 9804362

File tree

1 file changed

+52
-39
lines changed

1 file changed

+52
-39
lines changed

triage/2023-11-07.md

Lines changed: 52 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# 2023-11-07 Triage Log
22

3-
TODO: Summary
3+
A difficult week for triage, due to what appears to be system-level disruption to
4+
measurement apparatus, yielding transient noise (and potentially masking actual
5+
problems). The main non-noise performance change was huge regression to bitmaps introduced
6+
by PR 117131, and that already has a fix in-flight fix (PR #117542). The other thing
7+
worth noting is that the parallel rustc front-end has been enabled in the nighlty builds,
8+
which has introduced some overhead that was expected by wg-parallel-rustc.
49

510
Triage done by **@pnkfelix**.
611
Revision range: [650991d6..7b97a5ca](https://perf.rust-lang.org/?start=650991d62c3a2c80ba27009d06839adbb038bf5e&end=7b97a5ca8422d1495a8918106d3249aa405812d4&absolute=false&stat=instructions%3Au)
@@ -31,6 +36,9 @@ Accept less invalid Rust in rustdoc [#117450](https://github.com/rust-lang/rust/
3136
| Improvements ✅ <br /> (secondary) | - | - | 0 |
3237
| All ❌✅ (primary) | 4.1% | [0.6%, 21.0%] | 17 |
3338

39+
* primary regressions are to doc benchmarks, were anticipated, and are unavoidable.
40+
* marking as triaged.
41+
3442

3543
Fix order of implementations in the "implementations on foreign types" section [#117521](https://github.com/rust-lang/rust/pull/117521) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=c5afe0a61e39bdd912803eae8d1887a513bdd172&end=b20f40dba9feabf4b446d9b09d15996f0c046eff&stat=instructions:u)
3644

@@ -42,6 +50,9 @@ Fix order of implementations in the "implementations on foreign types" section [
4250
| Improvements ✅ <br /> (secondary) | - | - | 0 |
4351
| All ❌✅ (primary) | 2.4% | [0.7%, 3.3%] | 3 |
4452

53+
* the primary regressions are to diesel-doc-full (3.35%), syn-opt-full (3.07%) and serde-doc-full (0.69%).
54+
* the syn-opt-full "regression" is noise; the other two primary benchmarks are doc; this is rustdoc fix and that team has already said they don't think they can do much to address the situation there.
55+
* marking as triaged.
4556

4657
dropck_outlives check whether generator witness needs_drop [#117134](https://github.com/rust-lang/rust/pull/117134) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=e8418e092a643ef87019192af7ed6bbd23cc4a63&end=a2f5f9691b6ce64c1703feaf9363710dfd7a56cf&stat=instructions:u)
4758

@@ -53,6 +64,9 @@ dropck_outlives check whether generator witness needs_drop [#117134](https://git
5364
| Improvements ✅ <br /> (secondary) | - | - | 0 |
5465
| All ❌✅ (primary) | 0.3% | [0.2%, 0.3%] | 5 |
5566

67+
* regressed ripgrep check for incr-patched:println (0.35%), incr-full (0.26%), and full (0.21%); regressed regex check for incr-patched:Job (0.29%) and incr-patched:println (0.24%).
68+
* this is easily justified; it is fixing a code-acceptance regression
69+
* marking as triaged
5670

5771
Add track_caller to transmute_copy [#117510](https://github.com/rust-lang/rust/pull/117510) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1d6f05fd3735efc8f5af2f6278a3391543c2790b&end=49112241e96aaca646b1aa8ef704e494f56feed4&stat=instructions:u)
5872

@@ -64,6 +78,9 @@ Add track_caller to transmute_copy [#117510](https://github.com/rust-lang/rust/p
6478
| Improvements ✅ <br /> (secondary) | - | - | 0 |
6579
| All ❌✅ (primary) | 0.4% | [0.4%, 0.4%] | 3 |
6680

81+
* regressed bitmaps incr-full for check (0.37%), opt (0.36%), and debug (0.36%).
82+
* this seems likely to be noise. It certainly paled in comparison to the regression associated with #117131 for this benchmark (see below).
83+
* marking as triaged.
6784

6885
Guarantee representation of None in NPO [#115333](https://github.com/rust-lang/rust/pull/115333) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9c20ddd956426d577d77cb3f57a7db2227a3c6e9&end=1bb6553b967b69eed9ed8147e78b4f65cfc48e11&stat=instructions:u)
6986

@@ -75,6 +92,10 @@ Guarantee representation of None in NPO [#115333](https://github.com/rust-lang/r
7592
| Improvements ✅ <br /> (secondary) | - | - | 0 |
7693
| All ❌✅ (primary) | 12.2% | [0.9%, 30.1%] | 8 |
7794

95+
* this is a docs change.
96+
* There was a spike of noise that somehow significantly (but temporarily) affected three instances of stm32f4 debug, as well as clap opt (all of which immediately went away in the next commit).
97+
* there is more [discussion of why on zulip](https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/perf.20is.20slow.20again/near/400329622)
98+
* already marked as triaged.
7899

79100
clone less [#117540](https://github.com/rust-lang/rust/pull/117540) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=5020f7c3b8bd8bf57077389bca5c19f7911fde7a&end=f1b104f52350c800f78d4372aec52080bd6f9164&stat=instructions:u)
80101

@@ -86,6 +107,8 @@ clone less [#117540](https://github.com/rust-lang/rust/pull/117540) [(Comparison
86107
| Improvements ✅ <br /> (secondary) | - | - | 0 |
87108
| All ❌✅ (primary) | 16.5% | [1.1%, 30.2%] | 3 |
88109

110+
* the regressions here seem to be correlated with the same spike of noise that afflicted #115333.
111+
* marking as triaged
89112

90113
Run tidy license checker on more workspaces [#115274](https://github.com/rust-lang/rust/pull/115274) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=f1b104f52350c800f78d4372aec52080bd6f9164&end=3aaa0f57b7b877ef58532a8de075d1e5a79142bf&stat=instructions:u)
91114

@@ -97,6 +120,8 @@ Run tidy license checker on more workspaces [#115274](https://github.com/rust-la
97120
| Improvements ✅ <br /> (secondary) | - | - | 0 |
98121
| All ❌✅ (primary) | 8.8% | [3.3%, 17.8%] | 3 |
99122

123+
* the regressions here seem to be correlated with the same spike of noise that afflicted #115333.
124+
* already marked as triaged
100125

101126
Warn users who set `non_exhaustive_omitted_patterns` lint level on a match arm [#117094](https://github.com/rust-lang/rust/pull/117094) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=2db26d3d55387930f1b1dfb84810bcde5a787a09&end=f81d6f0cb00b1e314107b81bcb9aa72b9df9f564&stat=instructions:u)
102127

@@ -108,6 +133,10 @@ Warn users who set `non_exhaustive_omitted_patterns` lint level on a match arm [
108133
| Improvements ✅ <br /> (secondary) | - | - | 0 |
109134
| All ❌✅ (primary) | 0.2% | [0.2%, 0.3%] | 3 |
110135

136+
* regressed check incr-full for cranelift-codegen (0.25%), cargo (0.22%) and hyper (0.21%).
137+
* this small amount does not appear to be noise
138+
* but it shouldn't have any (significant) effect if the `non_exhaustive_omitted_patterns` lint is not in use.
139+
* marking as triaged
111140

112141
Rollup of 6 pull requests [#117590](https://github.com/rust-lang/rust/pull/117590) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a42d94ebb883116f2867cbe3016d9bde9ca6d3f7&end=4b85902b438f791c5bfcb6b1c5b476d5b88e2bef&stat=instructions:u)
113142

@@ -119,6 +148,8 @@ Rollup of 6 pull requests [#117590](https://github.com/rust-lang/rust/pull/11759
119148
| Improvements ✅ <br /> (secondary) | - | - | 0 |
120149
| All ❌✅ (primary) | 12.7% | [0.4%, 30.9%] | 6 |
121150

151+
* the primary regressions (bitmaps and cargo), while huge, are also clearly noise.
152+
* marking as triaged.
122153

123154
enable parallel rustc front end in nightly builds [#117435](https://github.com/rust-lang/rust/pull/117435) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=fcca978aa0c9a7443649305dd0ed48c4691a1e89&end=f9b644636f8c74d1d9a3283dc65a6a6f02a97718&stat=instructions:u)
124155

@@ -130,6 +161,9 @@ enable parallel rustc front end in nightly builds [#117435](https://github.com/r
130161
| Improvements ✅ <br /> (secondary) | - | - | 0 |
131162
| All ❌✅ (primary) | 2.9% | [0.4%, 5.1%] | 209 |
132163

164+
* I was not sure that wg-parallel-rustc was anticipating there being this much of a regression here.
165+
* after followup in [zulip for wg-parallel-rustc](https://rust-lang.zulipchat.com/#narrow/stream/187679-t-compiler.2Fwg-parallel-rustc/topic/performance.20results/near/400790214), they clarified that their expectation of a 1.65% regression was based on wall-time that includes so-called "non-relevant results". (Our default rustc-perf presentation filters out the non-relevant results, which will boost outliers and thus inflate the true mean effect.)
166+
* concluded that this was anticipated and marking as triaged
133167

134168
#### Improvements
135169

@@ -143,6 +177,8 @@ bootstrap: do not purge docs on CI environment [#117471](https://github.com/rust
143177
| Improvements ✅ <br /> (secondary) | - | - | 0 |
144178
| All ❌✅ (primary) | -3.0% | [-3.0%, -3.0%] | 1 |
145179

180+
* single improvement to syn-opt-full that is almost certainly noise.
181+
* and was reverted anyway in PR #117533
146182

147183
Remove support for compiler plugins. [#116412](https://github.com/rust-lang/rust/pull/116412) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=1bb6553b967b69eed9ed8147e78b4f65cfc48e11&end=5020f7c3b8bd8bf57077389bca5c19f7911fde7a&stat=instructions:u)
148184

@@ -154,6 +190,7 @@ Remove support for compiler plugins. [#116412](https://github.com/rust-lang/rust
154190
| Improvements ✅ <br /> (secondary) | - | - | 0 |
155191
| All ❌✅ (primary) | -10.1% | [-23.2%, -0.9%] | 8 |
156192

193+
* perf improvements here are mostly noise.
157194

158195
Rollup of 3 pull requests [#117564](https://github.com/rust-lang/rust/pull/117564) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=3aaa0f57b7b877ef58532a8de075d1e5a79142bf&end=a9b03ffe9b23a0832c897e25f246439d99d3026d&stat=instructions:u)
159196

@@ -165,6 +202,7 @@ Rollup of 3 pull requests [#117564](https://github.com/rust-lang/rust/pull/11756
165202
| Improvements ✅ <br /> (secondary) | - | - | 0 |
166203
| All ❌✅ (primary) | -9.6% | [-15.4%, -3.0%] | 4 |
167204

205+
* again, perf improvements here seem to be noise
168206

169207
Hint optimizer about try-reserved capacity [#117503](https://github.com/rust-lang/rust/pull/117503) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=4b85902b438f791c5bfcb6b1c5b476d5b88e2bef&end=f5ca57e153afaed818f8be88abf5ce46715c0f9a&stat=instructions:u)
170208

@@ -176,6 +214,8 @@ Hint optimizer about try-reserved capacity [#117503](https://github.com/rust-lan
176214
| Improvements ✅ <br /> (secondary) | -13.5% | [-19.5%, -7.5%] | 2 |
177215
| All ❌✅ (primary) | -10.4% | [-23.6%, -0.4%] | 6 |
178216

217+
* improvement here is transient noise on bitmaps and cargo.
218+
179219

180220
#### Mixed
181221

@@ -189,6 +229,11 @@ Update cargo [#117462](https://github.com/rust-lang/rust/pull/117462) [(Comparis
189229
| Improvements ✅ <br /> (secondary) | -1.5% | [-1.5%, -1.5%] | 1 |
190230
| All ❌✅ (primary) | 0.2% | [-0.6%, 1.1%] | 4 |
191231

232+
* regressions are to unicode-normalization-opt-incr-patched:println (1.06%) and clar-opt-full (0.81%)
233+
* the regressions to instruction counts seem small but they persist; i.e. this is not transient noise. (It is not clear whether the cost is borne from cargo itself, or if something has changed about how cargo is invoking rustc that incurs this cost.)
234+
* on the other hand, cycle counts and wall time are not impacted at all, which implies to me that this is probably not worth investigating.
235+
* marking as triaged.
236+
192237

193238
Rollup of 5 pull requests [#117459](https://github.com/rust-lang/rust/pull/117459) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=9d83ac217957eece2189eccf4a7232caec7232ee&end=09ac6e4b6dbec74dc4718191a6650a1b7e04a7a6&stat=instructions:u)
194239

@@ -200,6 +245,8 @@ Rollup of 5 pull requests [#117459](https://github.com/rust-lang/rust/pull/11745
200245
| Improvements ✅ <br /> (secondary) | - | - | 0 |
201246
| All ❌✅ (primary) | -0.2% | [-0.3%, -0.1%] | 3 |
202247

248+
* regressons are all minor and to variants of secondary benchmark coercions
249+
* marking as triaged
203250

204251
Add all RPITITs when augmenting param-env with GAT bounds in `check_type_bounds` [#117131](https://github.com/rust-lang/rust/pull/117131) [(Comparison Link)](https://perf.rust-lang.org/compare.html?start=a2f5f9691b6ce64c1703feaf9363710dfd7a56cf&end=2520ca8566e596b10b0a163d31d9ce216876fafc&stat=instructions:u)
205252

@@ -211,41 +258,7 @@ Add all RPITITs when augmenting param-env with GAT bounds in `check_type_bounds`
211258
| Improvements ✅ <br /> (secondary) | -1.4% | [-1.7%, -1.0%] | 6 |
212259
| All ❌✅ (primary) | 32.3% | [0.3%, 99.8%] | 19 |
213260

214-
215-
#### Untriaged Pull Requests
216-
217-
- [#117590 Rollup of 6 pull requests](https://github.com/rust-lang/rust/pull/117590)
218-
- [#117540 clone less](https://github.com/rust-lang/rust/pull/117540)
219-
- [#117521 Fix order of implementations in the "implementations on foreign types" section](https://github.com/rust-lang/rust/pull/117521)
220-
- [#117510 Add track_caller to transmute_copy](https://github.com/rust-lang/rust/pull/117510)
221-
- [#117462 Update cargo](https://github.com/rust-lang/rust/pull/117462)
222-
- [#117459 Rollup of 5 pull requests](https://github.com/rust-lang/rust/pull/117459)
223-
- [#117450 Accept less invalid Rust in rustdoc](https://github.com/rust-lang/rust/pull/117450)
224-
- [#117435 enable parallel rustc front end in nightly builds](https://github.com/rust-lang/rust/pull/117435)
225-
- [#117180 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/117180)
226-
- [#117134 dropck_outlives check whether generator witness needs_drop](https://github.com/rust-lang/rust/pull/117134)
227-
- [#117131 Add all RPITITs when augmenting param-env with GAT bounds in `check_type_bounds`](https://github.com/rust-lang/rust/pull/117131)
228-
- [#117094 Warn users who set `non_exhaustive_omitted_patterns` lint level on a match arm](https://github.com/rust-lang/rust/pull/117094)
229-
- [#116940 Rollup of 4 pull requests](https://github.com/rust-lang/rust/pull/116940)
230-
- [#116889 Eat close paren if capture_cfg to avoid unbalanced parens](https://github.com/rust-lang/rust/pull/116889)
231-
- [#116492 Rollup of 7 pull requests](https://github.com/rust-lang/rust/pull/116492)
232-
- [#116391 exhaustiveness: Rework constructor splitting](https://github.com/rust-lang/rust/pull/116391)
233-
- [#116183 Always preserve DebugInfo in DeadStoreElimination.](https://github.com/rust-lang/rust/pull/116183)
234-
- [#116033 report `unused_import` for empty reexports even it is pub](https://github.com/rust-lang/rust/pull/116033)
235-
- [#115762 Explain revealing of opaque types in layout_of ParamEnv](https://github.com/rust-lang/rust/pull/115762)
236-
- [#115751 some inspect improvements](https://github.com/rust-lang/rust/pull/115751)
237-
- [#115740 Cache reachable_set on disk](https://github.com/rust-lang/rust/pull/115740)
238-
- [#115252 Represent MIR composite debuginfo as projections instead of aggregates](https://github.com/rust-lang/rust/pull/115252)
239-
- [#115082 Fix races conditions with `SyntaxContext` decoding](https://github.com/rust-lang/rust/pull/115082)
240-
- [#115025 Make subtyping explicit in MIR](https://github.com/rust-lang/rust/pull/115025)
241-
- [#114892 Remove conditional use of `Sharded` from query caches](https://github.com/rust-lang/rust/pull/114892)
242-
- [#114481 Rollup of 9 pull requests](https://github.com/rust-lang/rust/pull/114481)
243-
- [#114459 Do not run ConstProp on mir_for_ctfe.](https://github.com/rust-lang/rust/pull/114459)
244-
- [#114321 get auto traits for parallel rustc](https://github.com/rust-lang/rust/pull/114321)
245-
- [#114023 Warn on inductive cycle in coherence leading to impls being considered not overlapping](https://github.com/rust-lang/rust/pull/114023)
246-
- [#114004 Add `riscv64gc-unknown-hermit` target](https://github.com/rust-lang/rust/pull/114004)
247-
248-
#### Nags requiring follow up
249-
250-
TODO: Nags
251-
261+
* the regression to bitmaps (to 13 variants, ranging from 10.8% to 99.8%) appears persistent (non-noise)
262+
* it carries over to cycle-count and wall-clock time.
263+
* compiler-errors has been investigating, and it looks like PR #117542 will address it.
264+
* marking as triaged

0 commit comments

Comments
 (0)