Closed Bug 1541977 Opened 7 months ago Closed 6 months ago

Pref-Flip Study: Process Priority Manager on Windows

Categories

(Shield :: Shield Study, task)

task
Not set

Tracking

(firefox67+ fixed)

RESOLVED FIXED
Tracking Status
firefox67 + fixed

People

(Reporter: mconley, Assigned: mconley)

Details

No description provided.

We've added code that allows Firefox to lower the OS priority of content processes that are only running background tabs. This should free up CPU cycles for foreground tabs, and is consistent with how other multi-process browsers work.
More detail:
Having discussed with Mike, i will state the ideals of this experiment first followed by what we will actually design.

Firefox has 4 (and now 8) content processes (CP) tied to OS processes. When tabs are opened (or tab in a new window), they assigned to CP in a round robin fashion. If i have eight tabs, i have eight content processes and if nine tabs, i still have eight content processes but one has two tabs associated with it.

With this feature, when a content process has a tab in focus its "process priority" is normal. When a content process has all its tabs in the background, it's "process priority" is lowered.

For example, if i switch away from a tab and that tab belongs to a CP that has all its other tabs in the background, the process priority for the CP is lowered.

There is one exception: if the CP has a tab playing audio (e.g. youtube), then it's process priority is not lowered. So in the above example, if i switch away from tab and the associated the CP has all its tabs in the background but one is playing audio, then the CP will not have its "process priority* lowered.

We want to ensure that there are no negative impacts to page load performance or user retention with this change.

More information: https://experimenter.services.mozilla.com/experiments/process-priority-manager-on-windows/

[Tracking Requested - why for this release]:

The experiment is slated to ship in Firefox 67 on the beta channel.

Type: defect → task

Process Priority Manager on Windows
Targeted: Firefox Beta 67

We have finished testing the “Process Priority Manager on Windows” experiment.

QA’s recommendation: YELLOW - SHIP IT CONDITIONALLY

Reasoning:

  • Due to the fact that we had such a short amount of time for testing we have performed only exploratory testing.
  • We were not sure if this study will be launched only on Windows or on all OS-es. The Experimenter page and Jira Ticket are saying “All platforms” while the Data Science Bugzilla Ticket mentions only Windows platform.
  • We weren't able to verify the process prioritization functionality on Mac even though the testing was requested to be performed on “All platforms”. There are no details on how to access the information regarding the prioritization of processes on this platform.
  • The process priority is not lowered on Linux, we do not know if this is intended because of this comment.

Testing Summary:

  • We have verified that there are no regression regarding the load time.
  • We have verified the following scenarios regarding the process priority:
  • The tabs that are not in focus have a lower priority from normal.
  • Having a website blocked from automatically playing sound improves the process priority on several websites. (Normally a tab with autoplaying sounds will not have the process priority changed if the tab is not focused. However if the website from the tab has the autoplaying sounds blocked when the tab is not focused it will have the process priority lowered)
  • Having an adblocker installed improves the process priority on several websites. (If an ad is displayed on a website, its tab will not have the process priority lowered when unfocused due to this fact. However, having an adblocker removes the ads and the tab will have the process priority lowered when unfocused)
  • We have verified that the following telemetry probes are correctly sent:
  • DOM_CONTENTPROCESS_OS_PRIORITY_CHANGE_CONSIDERED
  • DOM_CONTENTPROCESS_OS_PRIORITY_RAISED
  • DOM_CONTENTPROCESS_OS_PRIORITY_LOWERED
  • fx_tab_switch_total_e10s_ms
  • fx_tab_switch_update_ms

Tested Platforms:

  • Windows 10 x64
  • Windows 7 x32
  • Ubuntu 18.04

Tested Firefox versions:

  • Firefox Beta 67.0b8
Flags: shield-qa+
    Experiment Type: Pref Flip Study

    What is the preference we will be changing

dom.ipc.processPriorityManager.enabled

    What are the branches of the study and what values should
    each branch be set to?

- Treatment Control 50%:

Value: false

No change to process priority
        
- Treatment Test 50%:

Value: true

Process priority is changed for background tabs
        

    What version and channel do you intend to ship to?

8% of Beta Firefox 67.0

    Are there specific criteria for participants?

Locales: All

Geographic regions: ALL

Prefs: ALL

Studies:  ALL

OS: Windows Only

Any additional filters: 67.0b8 and above since feature will land on b8


See https://metrics.mozilla.com/~sguha/mz/process_priority/samples.html for sample size selection

    What is your intended go live date and how long will the study run?

Apr 08, 2019 - Apr 22, 2019 (14 days)

    What is the main effect you are looking for and what data will you use to
    make these decisions?

What is the main effect you are looking for and what data will
you use to make these decisions? What metrics are you using to measure success

Change in of more than 5ms in 

- fx_tab_switch_total_e10s_ms
- fx_tab_switch_update_ms

Do you plan on surveying users at the end of the study? Yes/No.
No

    Who is the owner of the data analysis for this study?

Saptarshi Guha

    Will this experiment require uplift?

False

    QA Status of your code:



    Link to more information about this study:

https://experimenter.services.mozilla.com/experiments/process-priority-manager-on-windows/
Assignee: nobody → mconley

Experiment was ended on april 29th.

Status: NEW → RESOLVED
Closed: 6 months ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.