0.14 - 0.15% installer size (osx-shippable) regression on push 16f2eded7e001e3286715b31bb93fc8fc430d046 (Mon March 23 2020)
Categories
(Core :: JavaScript: WebAssembly, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox74 | --- | unaffected |
firefox75 | --- | unaffected |
firefox76 | --- | fixed |
firefox77 | --- | fixed |
People
(Reporter: alexandrui, Assigned: rhunt)
References
(Regression)
Details
(Keywords: perf-alert, regression)
Attachments
(2 files)
47 bytes,
text/x-phabricator-request
|
RyanVM
:
approval-mozilla-beta+
|
Details | Review |
47 bytes,
text/x-phabricator-request
|
RyanVM
:
approval-mozilla-beta+
|
Details | Review |
We have detected a build metrics regression from push:
As author of one of the patches included in that push, we need your help to address this regression.
Regressions:
0.15% installer size osx-shippable opt instrumented 114,678,520.08 -> 114,852,105.75
0.14% installer size osx-shippable opt nightly 81,899,602.50 -> 82,017,907.92
You can find links to graphs and comparison views for each of the above tests at: https://treeherder.mozilla.org/perf.html#/alerts?id=25468
On the page above you can see an alert for each affected platform as well as a link to a graph showing the history of scores for this test. There is also a link to a treeherder page showing the jobs in a pushlog format.
To learn more about the regressing test(s), please see: https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Automated_Performance_Testing_and_Sheriffing/Build_Metrics
*** Please let us know your plans within 3 business days, or the offending patch(es) will be backed out! ***
Reporter | ||
Updated•5 years ago
|
Comment 1•5 years ago
|
||
We did replace a component written in C++ (maintained internally, not shared with anyone, not standards-compliant) with another written in Rust (maintained by the community, shared with lots of people, standards-compliant) and we want to make that stick.
But I'm frankly not sure why this code should be linked into the binary in a shippable build, though it seems both the old code and the new code are.
Benjamin & Christian - is there any reason the text->binary code is needed in a shipping build? It is only used from the shell function, which should not be available in a shippable build.
Nathan, could this be the consequence of some kind of tree-shaking link optimization that does not work on Rust code?
Comment 2•5 years ago
|
||
A search on Searchfox shows that wasmTextToBinary is used in DOM/devtools testing, using the SpecialPowers ability:
https://searchfox.org/mozilla-central/search?q=wasmTextToBinary&case=false®exp=false&path=
If these tests are run on automation (including for shippable builds), then it'll be hard to strip the function's code from the binary. Otherwise (these tests are not run for shipped builds), we could remove it from the list of available testing functions, conditionally on configure flags (if local/test build; there ought to be flags for this).
(Clearing Nathan's NI, since the function is explicitly exported, there's no more suspicion for a tree-shaking link optimization failure.)
Comment 3•5 years ago
|
||
From a fuzzing perspective, there is no requirement to have this in release builds. Even if we used it (afaik we don't right now), we could hide it behind the --enable-fuzzing
build flag.
Assignee | ||
Comment 4•5 years ago
|
||
I don't think this functionality is needed outside the JS shell, I'll work to conditionally compile it.
Assignee | ||
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 5•5 years ago
|
||
Just an update, I'm still working on this and have it mostly working. Hunting down a pesky Windows only failure now.
Assignee | ||
Comment 6•5 years ago
|
||
Assignee | ||
Comment 7•5 years ago
|
||
Depends on D68650
Comment 8•5 years ago
|
||
Hi Lars, can you please (let) set a priority here?
Comment 9•5 years ago
|
||
Ryan, what news?
Updated•5 years ago
|
Comment 10•5 years ago
|
||
Eric, can someone else review D68650 while Nathan's out?
Comment 11•5 years ago
|
||
(In reply to Julien Cristau [:jcristau] from comment #10)
Eric, can someone else review D68650 while Nathan's out?
Sure, redirected to glandium.
Assignee | ||
Comment 12•5 years ago
|
||
Should be ready to land once review is finished.
Comment 13•5 years ago
|
||
Comment 14•5 years ago
|
||
bugherder |
Comment 15•5 years ago
|
||
The patch landed in nightly and beta is affected.
:rhunt, is this bug important enough to require an uplift?
If not please set status_beta
to wontfix
.
For more information, please visit auto_nag documentation.
Assignee | ||
Comment 16•5 years ago
|
||
Comment on attachment 9136479 [details]
Bug 1624524 - Remove uses of wasmTextToBinary in non-JS shell tests. r?bbouvier
Beta/Release Uplift Approval Request
- User impact if declined: Slight installer size increase on OSX. Looks like ~100KB.
- Is this code covered by automated tests?: Yes
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: No
- If yes, steps to reproduce:
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): This is a build configuration only change to conditionally compile test-only code. There are no behavioral changes.
- String changes made/needed:
Assignee | ||
Updated•5 years ago
|
Comment 17•5 years ago
|
||
Comment on attachment 9136478 [details]
Bug 1624524 - Only compile wasmTextToBinary and wasmCodeOffsets in JS Shell. r?bbouvier
Reduces installer size by not building code only used by the JS shell. Approved for 76.0b5.
Updated•5 years ago
|
Comment 18•5 years ago
|
||
bugherder uplift |
Updated•5 years ago
|
Description
•