Send the scene back to the scene builder thread instead of dropping it in the renderer
Categories
(Core :: Graphics: WebRender, enhancement)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox130 | --- | fixed |
People
(Reporter: nical, Assigned: nical)
References
Details
(Keywords: perf-alert)
Attachments
(2 files)
The goal is to avoid deallocating the scene in a different thread from the one where it was allocated, to avoid lock contention in jemalloc.
| Assignee | ||
Comment 1•2 years ago
|
||
The scene is sent back to the scene builder thread where the SceneRecycler will reuse some allocations and drop the rest. Deallocating the memory on the scene builder thread where it was allocated removes lock contention in jemalloc and as a bonus gives an opportunity to recycle some of it. This patch picks only the lowest hanging fruits when it comes to recycling allocations from the scene and the scene builder.
| Assignee | ||
Comment 2•2 years ago
|
||
The scene is sent back to the scene builder thread where the SceneRecycler will reuse some allocations and drop the rest. Deallocating the memory on the scene builder thread where it was allocated removes lock contention in jemalloc and as a bonus gives an opportunity to recycle some of it. This patch picks only the lowest hanging fruits when it comes to recycling allocations from the scene and the scene builder.
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Comment 4•2 years ago
|
||
Backed out for causing multiple build bustages.
| Assignee | ||
Updated•2 years ago
|
Comment 6•2 years ago
|
||
| bugherder | ||
Comment 8•2 years ago
|
||
(In reply to Serban Stanca [:SerbanS] from comment #4)
Backed out for causing multiple build bustages.
Hi Nicolas! It looks like the following push, which contains the backout mentioned in the previous comment, caused the following performance changes
Regressions:
| Ratio | Test | Platform | Options | Absolute values (old vs new) | Performance Profiles |
|---|---|---|---|---|---|
| 3% | motionmark-htmlsuite-ramp | linux1804-64-shippable-qr | fission webrender | 490.30 -> 474.32 | Before/After |
Improvements:
| Ratio | Test | Platform | Options | Absolute values (old vs new) | Performance Profiles |
|---|---|---|---|---|---|
| 8% | youtube ContentfulSpeedIndex | android-hw-a51-11-0-aarch64-shippable-qr | warm webrender | 532.22 -> 490.08 | Before/After |
Can you help us confirm if it was this backout specifically that caused the performance changes ? Or do you think it's one of the other backouts in this push that caused them ?
Updated•2 years ago
|
Comment 9•2 years ago
•
|
||
Removed for typo
Comment 10•2 years ago
|
||
(In reply to Pulsebot from comment #5)
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f1b1f41f96fb
Do scene-related memory deallocations on the scene builder thread. r=gw
Perfherder has detected a talos performance change from push f1b1f41f96fba444f4d16acd161b069f20b8ac67.
Improvements:
| Ratio | Test | Platform | Options | Absolute values (old vs new) |
|---|---|---|---|---|
| 14% | displaylist_mutate | windows11-64-shippable-qr | e10s fission stylo webrender | 1,633.67 -> 1,406.42 |
| 12% | displaylist_mutate | windows11-64-shippable-qr | e10s fission stylo webrender-sw | 1,577.11 -> 1,385.33 |
| 11% | displaylist_mutate | linux1804-64-shippable-qr | e10s fission stylo webrender | 2,902.26 -> 2,575.88 |
| 11% | displaylist_mutate | linux1804-64-shippable-qr | e10s fission stylo webrender-sw | 2,737.75 -> 2,442.76 |
| 10% | displaylist_mutate | linux1804-64-shippable-qr | e10s fission stylo webrender | 2,892.14 -> 2,597.74 |
| ... | ... | ... | ... | ... |
| 3% | tscrollx | linux1804-64-shippable-qr | e10s fission stylo webrender-sw | 1.00 -> 0.97 |
Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.
If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a sheriff to do that for you.
You can run these tests on try with ./mach try perf --alert 1441
For more information on performance sheriffing please see our FAQ.
| Assignee | ||
Comment 11•2 years ago
|
||
Can you help us confirm if it was this backout specifically that caused the performance changes
Yes indeed!
Comment 12•2 years ago
|
||
(In reply to Pulsebot from comment #5)
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f1b1f41f96fb
Do scene-related memory deallocations on the scene builder thread. r=gw
Perfherder has detected a browsertime performance change from push f1b1f41f96fba444f4d16acd161b069f20b8ac67.
Improvements:
| Ratio | Test | Platform | Options | Absolute values (old vs new) | Performance Profiles |
|---|---|---|---|---|---|
| 4% | motionmark-htmlsuite-1-3 | windows11-64-shippable-qr | fission webrender | 925.25 -> 966.12 | Before/After |
| 4% | motionmark-htmlsuite-ramp | linux1804-64-shippable-qr | fission webrender | 482.60 -> 501.13 | Before/After |
| 4% | motionmark-htmlsuite-1-3 | linux1804-64-shippable-qr | fission webrender | 527.86 -> 547.91 | Before/After |
| 3% | motionmark-htmlsuite-ramp | windows11-64-shippable-qr | fission webrender | 884.15 -> 912.46 | Before/After |
| 2% | motionmark-htmlsuite-1-3 | linux1804-64-shippable-qr | fission webrender | 538.17 -> 546.77 | Before/After |
Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.
If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a sheriff to do that for you.
You can run these tests on try with ./mach try perf --alert 1479
For more information on performance sheriffing please see our FAQ.
Comment 13•2 years ago
|
||
(In reply to Serban Stanca [:SerbanS] from comment #4)
Backed out for causing multiple build bustages.
Perfherder has detected a browsertime performance change from push ca70a0bf2a80bd3d1a9a7af2e55838208f08747c.
Regressions:
| Ratio | Test | Platform | Options | Absolute values (old vs new) | Performance Profiles |
|---|---|---|---|---|---|
| 4% | motionmark-htmlsuite-ramp | linux1804-64-shippable-qr | fission webrender | 491.94 -> 470.49 | Before/After |
As author of one of the patches included in that push, we need your help to address this regression.
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 patch(es) may be backed out in accordance with our regression policy.
If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a sheriff to do that for you.
You can run these tests on try with ./mach try perf --alert 1448
For more information on performance sheriffing please see our FAQ.
Comment 14•2 years ago
|
||
(In reply to Nicolas Silva [:nical] from comment #11)
Can you help us confirm if it was this backout specifically that caused the performance changes
Yes indeed!
Thanks for the reply Nicolas, I linked the alert summary to this patch.
Description
•