Closed Bug 1602757 Opened 5 years ago Closed 4 years ago

Fission content processes aren't prestarted

Categories

(Core :: DOM: Navigation, task, P2)

task

Tracking

()

RESOLVED FIXED
mozilla78
Performance Impact high
Fission Milestone M6a
Tracking Status
firefox78 --- fixed

People

(Reporter: jesup, Assigned: jesup)

References

(Blocks 2 open bugs)

Details

(Keywords: perf:pageload, Whiteboard: [fission])

Attachments

(4 files, 13 obsolete files)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review

When starting a browser and navigating to an initial domain, it does not use any sort of prestarted process like is done in e10s mode - the prestarted 'web' process is not used.

https://imgur.com/gallery/m5tYJL6
Results for imgur:
non-fission: https://perfht.ml/2E5wPpO
fission: https://perfht.ml/36ngHfr

and another run:
non-fission: https://perfht.ml/2LSfaGz
fission: https://perfht.ml/2LEB1km

These are focused on the keydown event to start browsing, after a startup with ./firefox -P profile -no-remote about:blank, local opt build

Regressions: 1602818
Blocks: 1603119
Blocks: 1602818
Fission Milestone: --- → M6
Priority: -- → P2
No longer regressions: 1602818
Assignee: nobody → rjesup
Status: NEW → ASSIGNED

FYI, to recap Riot/Matrix discussions, we have one preallocation queue used for all remote types (and e10s) other than file:. I added logs and profiler markers. Tuning may still be needed, but loading CNN (which by default causes 14 processes to be created for me) didn't hit an empty cache at any point on my (fast linux) desktop. We'll need to check it on Windows and Mac as well.

We also still allow short-duration e10s processes to be recycled and reused (only for remotetype=web (e10s)).

Attachment #9138082 - Attachment description: Bug 1602757: add preallocation cache for webIsolated (fission) processes r=jld → Bug 1602757: add preallocation cache for webIsolated (fission) processes r=smaug,nika
Attachment #9138084 - Attachment description: Bug 1602757: Use a single preallocation cache for all remotetypes except file: r=jld → Bug 1602757: Use a single preallocation cache for all remotetypes except file: r=smaug,nika
Attachment #9138085 - Attachment description: Bug 1602757: Support multiple preallocated processes for fission r=jld → Bug 1602757: Support multiple preallocated processes for fission r=smaug
Attachment #9138086 - Attachment description: Bug 1602757: (reenable) Caching one recycled e10s process if it was very short-lived r=jld → Bug 1602757: (reenable) Caching one recycled e10s process if it was very short-lived r=smaug
Attachment #9138087 - Attachment description: Bug 1602757: Add markers for process creation and change preallocation blocking to a counter r=jld → Bug 1602757: Add markers for process creation and change preallocation blocking to a counter r=smaug

Depends on D71265

Will be folded for landing

Attachment #9138084 - Attachment is obsolete: true
Attachment #9138085 - Attachment is obsolete: true
Attachment #9138086 - Attachment is obsolete: true
Attachment #9138087 - Attachment is obsolete: true
Attachment #9141157 - Attachment is obsolete: true
Attachment #9141158 - Attachment is obsolete: true
Attachment #9142524 - Attachment is obsolete: true
Attachment #9143235 - Attachment is obsolete: true
Attachment #9143236 - Attachment is obsolete: true
Attachment #9142524 - Attachment is obsolete: false
Blocks: 1561095
Blocks: 1638119
Depends on: 1638618
Attachment #9142524 - Attachment is obsolete: true

Since this is checked only at startup, to ensure it propagates to all
content processes we have to ensure we shut down and restart all
preallocated or cached processes (though the process running the current
page won't restart)

Depends on D76187

Pushed by rjesup@wgate.com: https://hg.mozilla.org/integration/autoland/rev/33515632a7db add preallocation cache for webIsolated (fission) processes r=nika,smaug https://hg.mozilla.org/integration/autoland/rev/d9b4b2cffaa5 Fix e10s process reuse cache and add debugs r=nika https://hg.mozilla.org/integration/autoland/rev/a0142f6bb65f Block extension processes from using the preallocation queue r=nika https://hg.mozilla.org/integration/autoland/rev/2c7bf6206bb4 Work around LookAndFeel not propagating to processes without tabs r=emilio https://hg.mozilla.org/integration/autoland/rev/1c98ac1c4283 Telemetry checks overrideUpdateChannel only at process startup r=chutten https://hg.mozilla.org/integration/autoland/rev/2556e3876602 Add prealloc as a type for processes in about:support r=flod,fluent-reviewers

Backed out for browser-chrome failures on browser_resource_uri.js

backout: https://hg.mozilla.org/integration/autoland/rev/7aaac87105b7e87c636057fec87311f60c50dd76

push: https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&revision=2556e38766026aa09aa8a2a5897120ea6e3a5c8c&searchStr=browser-chrome&selectedTaskRun=Z0Wr_HIVQjqSHMEchkZJrw-0

failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=303178830&repo=autoland&lineNumber=49254

[task 2020-05-21T00:30:42.500Z] 00:30:42 INFO - GECKO(1448) | [Child 5984: Main Thread]: I/DocShellAndDOMWindowLeak --DOMWINDOW == 8 (0B747800) [pid = 5984] [serial = 12] [outer = 00000000] [url = moz-extension://cec7b220-8b5d-48ba-a7ba-c38f39ff00d7/_generated_background_page.html]
[task 2020-05-21T00:31:59.519Z] 00:31:59 INFO - TEST-INFO | started process screenshot
[task 2020-05-21T00:31:59.586Z] 00:31:59 INFO - TEST-INFO | screenshot: exit 0
[task 2020-05-21T00:31:59.586Z] 00:31:59 INFO - Buffered messages logged at 00:30:29
[task 2020-05-21T00:31:59.586Z] 00:31:59 INFO - Entering test bound
[task 2020-05-21T00:31:59.586Z] 00:31:59 INFO - Console message: [JavaScript Error: "uncaught exception: undefined" {file: "resource://l10n-test/test.html" line: 26}]
[task 2020-05-21T00:31:59.586Z] 00:31:59 INFO - document.testsReadyPromise</<@resource://l10n-test/test.html:26:16
[task 2020-05-21T00:31:59.586Z] 00:31:59 INFO - async*document.testsReadyPromise<@resource://l10n-test/test.html:11:16
[task 2020-05-21T00:31:59.586Z] 00:31:59 INFO - @resource://l10n-test/test.html:8:34
[task 2020-05-21T00:31:59.586Z] 00:31:59 INFO -
[task 2020-05-21T00:31:59.587Z] 00:31:59 INFO - Buffered messages finished
[task 2020-05-21T00:31:59.587Z] 00:31:59 INFO - TEST-UNEXPECTED-FAIL | dom/l10n/tests/mochitest/document_l10n/non-system-principal/browser_resource_uri.js | Test timed out -
[task 2020-05-21T00:31:59.587Z] 00:31:59 INFO - GECKO(1448) | MEMORY STAT | vsize 811MB | vsizeMaxContiguous 372MB | residentFast 225MB | heapAllocated 86MB
[task 2020-05-21T00:31:59.587Z] 00:31:59 INFO - TEST-OK | dom/l10n/tests/mochitest/document_l10n/non-system-principal/browser_resource_uri.js | took 90079ms
[task 2020-05-21T00:31:59.587Z] 00:31:59 INFO - Not taking screenshot here: see the one that was previously logged
[task 2020-05-21T00:31:59.587Z] 00:31:59 INFO - TEST-UNEXPECTED-FAIL | dom/l10n/tests/mochitest/document_l10n/non-system-principal/browser_resource_uri.js | Found a tab after previous test timed out: resource://l10n-test/test.html -
[task 2020-05-21T00:31:59.594Z] 00:31:59 INFO - GECKO(1448) | [Child 3904: Main Thread]: I/DocShellAndDOMWindowLeak ++DOCSHELL 00FA6C00 == 1 [pid = 3904] [id = {70b5f5a6-b4e3-4194-8c58-399dc43f9261}]
[task 2020-05-21T00:31:59.594Z] 00:31:59 INFO - GECKO(1448) | [Child 3904, Main Thread] WARNING: 'NS_FAILED(rv)', file /builds/worker/checkouts/gecko/widget/windows/nsLookAndFeel.cpp, line 855
[task 2020-05-21T00:31:59.594Z] 00:31:59 INFO - GECKO(1448) | [Child 3904: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 1 (00F68EF0) [pid = 3904] [serial = 1] [outer = 00000000]
[task 2020-05-21T00:31:59.597Z] 00:31:59 INFO - GECKO(1448) | [Child 3904: Main Thread]: I/DocShellAndDOMWindowLeak ++DOMWINDOW == 2 (072C7400) [pid = 3904] [serial = 2] [outer = 00F68EF0]
[task 2020-05-21T00:31:59.624Z] 00:31:59 INFO - checking window state

Other failure: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=303183355&repo=autoland&lineNumber=4206

[task 2020-05-21T00:39:51.001Z] 00:39:51 INFO - TEST-UNEXPECTED-FAIL | dom/ipc/tests/browser_ProcessPriorityManager.js | Uncaught exception - Waiting for browser at about:blank to reach priority BACKGROUND - timed out after 50 tries.

Flags: needinfo?(rjesup)

Tracking for Fission Nightly M6a because this is an important performance bug and Jesup is actively working on it.

Severity: normal → N/A
Type: defect → task
Fission Milestone: M6 → M6a

Also set process priority to BACKGROUND for processes moved into the cache

Depends on D76189

Blocks: 1640333
Attachment #9143432 - Attachment is obsolete: true
Attachment #9149150 - Attachment is obsolete: true
Attachment #9151134 - Attachment is obsolete: true
Attachment #9150519 - Attachment is obsolete: true
Pushed by rjesup@wgate.com: https://hg.mozilla.org/integration/autoland/rev/a7d7edf158a4 add preallocation cache for webIsolated (fission) processes r=nika,smaug https://hg.mozilla.org/integration/autoland/rev/1c6a6bfaaeef Telemetry checks overrideUpdateChannel only at process startup r=chutten https://hg.mozilla.org/integration/autoland/rev/32851bed1929 Add prealloc as a type for processes in about:support r=flod,fluent-reviewers https://hg.mozilla.org/integration/autoland/rev/232da017dc6a disable process caching/preallocation while testing browser_resource_uri r=zbraniecki
Depends on: 1569928
Flags: needinfo?(rjesup)
Blocks: 1641414
Pushed by rjesup@wgate.com: https://hg.mozilla.org/integration/autoland/rev/bd19c329c6b7 add preallocation cache for webIsolated (fission) processes r=nika,smaug https://hg.mozilla.org/integration/autoland/rev/8bacf5ad656e Telemetry checks overrideUpdateChannel only at process startup r=chutten https://hg.mozilla.org/integration/autoland/rev/8dc7e11dbb9c Add prealloc as a type for processes in about:support r=flod,fluent-reviewers https://hg.mozilla.org/integration/autoland/rev/9456c9f960c9 disable process caching/preallocation while testing browser_resource_uri r=zbraniecki
Pushed by rjesup@wgate.com: https://hg.mozilla.org/integration/autoland/rev/5134aaa3278e add preallocation cache for webIsolated (fission) processes r=nika,smaug https://hg.mozilla.org/integration/autoland/rev/4b9c579de3b2 Telemetry checks overrideUpdateChannel only at process startup r=chutten https://hg.mozilla.org/integration/autoland/rev/58ec60831af6 Add prealloc as a type for processes in about:support r=flod,fluent-reviewers https://hg.mozilla.org/integration/autoland/rev/383fd9b931ae disable process caching/preallocation while testing browser_resource_uri r=zbraniecki
Depends on: 1640801
Flags: needinfo?(rjesup)
Pushed by rjesup@wgate.com: https://hg.mozilla.org/integration/autoland/rev/35b752334888 add preallocation cache for webIsolated (fission) processes r=nika,smaug https://hg.mozilla.org/integration/autoland/rev/6697644f94e1 Telemetry checks overrideUpdateChannel only at process startup r=chutten https://hg.mozilla.org/integration/autoland/rev/98acb58a4479 Add prealloc as a type for processes in about:support r=flod,fluent-reviewers https://hg.mozilla.org/integration/autoland/rev/9f37745ea922 disable process caching/preallocation while testing browser_resource_uri r=zbraniecki
Depends on: 1642491
See Also: → 1642566
Blocks: 1642772
Regressions: 1644244
Depends on: 1642290
Regressions: 1642290
Regressions: 1646211
Regressions: 1641328
Performance Impact: --- → P1
Keywords: perf:pageload
Whiteboard: [qf:p1:pageload][fission] → [fission]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: