Closed Bug 1746620 Opened 4 years ago Closed 4 years ago

24.4 - 5.24% perf_reftest style-attr-1.html / perf_reftest_singletons link-style-cache-1.html + 15 more (Linux, OSX, Windows) regression on Tue December 14 2021

Categories

(Core :: CSS Parsing and Computation, defect)

defect

Tracking

()

RESOLVED WONTFIX
Tracking Status
firefox97 --- affected

People

(Reporter: aesanu, Unassigned)

References

(Regression)

Details

(4 keywords)

Perfherder has detected a talos performance regression from push 97099edbe36995472b3e7b0462b1c24bdcbaa8fe. As author of one of the patches included in that push, we need your help to address this regression.

Regressions:

Ratio Test Platform Options Absolute values (old vs new)
24% perf_reftest style-attr-1.html windows10-64-shippable-qr e10s stylo webrender 2.63 -> 3.27
18% perf_reftest style-attr-1.html windows10-64-shippable-qr e10s stylo webrender-sw 2.59 -> 3.05
17% perf_reftest_singletons style-attr-1.html linux1804-64-shippable-qr e10s stylo webrender 2.82 -> 3.30
16% perf_reftest style-attr-1.html macosx1015-64-shippable-qr e10s fission stylo webrender 3.81 -> 4.43
14% perf_reftest style-attr-1.html windows10-64-shippable-qr e10s stylo webrender-sw 2.67 -> 3.05
14% perf_reftest_singletons style-attr-1.html windows10-64-shippable-qr e10s stylo webrender 2.74 -> 3.12
14% perf_reftest_singletons style-attr-1.html macosx1015-64-shippable-qr e10s stylo webrender 3.98 -> 4.53
14% perf_reftest style-attr-1.html macosx1015-64-shippable-qr e10s stylo webrender-sw 3.90 -> 4.44
13% perf_reftest style-attr-1.html macosx1014-64-shippable-qr e10s stylo webrender-sw 3.91 -> 4.42
13% perf_reftest_singletons style-attr-1.html macosx1015-64-shippable-qr e10s fission stylo webrender 4.03 -> 4.55
... ... ... ... ...
11% perf_reftest_singletons style-attr-1.html macosx1014-64-shippable-qr e10s stylo webrender 4.00 -> 4.46
11% perf_reftest_singletons style-attr-1.html macosx1014-64-shippable-qr e10s fission stylo webrender 4.09 -> 4.53
10% perf_reftest_singletons link-style-cache-1.html macosx1015-64-shippable-qr e10s fission stylo webrender 292.10 -> 320.42
8% perf_reftest_singletons link-style-cache-1.html macosx1015-64-shippable-qr e10s stylo webrender 290.50 -> 314.94
5% perf_reftest_singletons link-style-cache-1.html macosx1014-64-shippable-qr e10s fission stylo webrender 912.34 -> 960.17

Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests. Please follow our guide to handling regression bugs and let us know your plans within 3 business days, or the offending patch(es) will be backed out in accordance with our regression policy.

For more information on performance sheriffing please see our FAQ.

Flags: needinfo?(emilio)

This is expected given we made the CascadePriority bigger. See bug 1596712 for an analysis of basically the same regression. The main point is this:

This benchmark is meant to test for the "changing the style attribute doesn't
cause selector-matching" optimization (which, mind you, keeps working).

But in the process it creates 10k rules which form a perfect path in the rule
tree and that we put into a SmallVec during the cascade, and the benchmark
spends most of the time pushing to that SmallVec and iterating the declarations
(as there's only one property to apply).

So we could argue that the regression is minor and is not what the benchark is
supposed to be testing, but given I did the digging... :)

My patch made CascadeLevel bigger, which means that we create a somewhat bigger
vector in this case. Thankfully it also removed the dependency in the
CascadeLevel, so we can stop using that and use just Origin which is one byte to
revert the perf regression.

The main issue is, now there's no getting around CascadePriority being bigger than Origin.

But as I said this is testing for specific optimizations that keep working, so given this is not actionable we should close this bug and accept the regression.

Status: NEW → RESOLVED
Closed: 4 years ago
Flags: needinfo?(emilio)
Resolution: --- → WONTFIX
See Also: → 1596712
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.