Closed Bug 1993227 Opened 10 months ago Closed 9 months ago

8.72% cpstartup content-process-startup (Windows) regression on Tue September 30 2025

Categories

(Core :: Memory Allocator, defect, P2)

defect

Tracking

()

RESOLVED FIXED
147 Branch
Tracking Status
firefox-esr140 --- unaffected
firefox143 --- unaffected
firefox144 --- unaffected
firefox145 --- wontfix
firefox146 --- fixed
firefox147 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: pbone)

References

(Regression)

Details

(4 keywords)

Attachments

(4 files)

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

Please acknowledge, and begin investigating this alert within 3 business days, or the patch(es) may be backed out in accordance with our regression policy. Our guide to handling regression bugs has information about how you can proceed with this investigation.

If you have any questions or need any help with the investigation, please reach out to afinder@mozilla.com. Alternatively, you can find help on Slack by joining #perf-help, and on Matrix you can find help by joining #perftest.

Regressions:

Ratio Test Platform Options Absolute values (old vs new)
9% cpstartup content-process-startup windows11-64-24h2-shippable e10s fission stylo webrender 42.69 -> 46.42

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 afinder@mozilla.com to do that for you.

You can run all of these tests on try with ./mach try perf --alert 46978

The following documentation link provides more information about this command.

Flags: needinfo?(pbone)

Set release status flags based on info from the regressing bug 1867191

Set release status flags based on info from the regressing bug 1867191

It has been over 7 days with no activity on this performance regression.

:pbone, since you are the author of the regressor, bug 1867191, which triggered this performance alert, could you please provide a progress update?

If this regression is something that fixes a bug, changes the baseline of the regression metrics, or otherwise will not be fixed, please consider closing it as WONTFIX. See this documentation for more information on how to handle regressions.

For additional information/help, please needinfo the performance sheriff who filed this alert (they can be found in comment #0), or reach out in #perftest, or #perfsheriffs on Element.

For more information, please visit BugBot documentation.

Flags: needinfo?(pbone)

I want to find out the cause because I wasn't expecting this. But it may be that it's necessary. I'm looking at it now.

Assignee: nobody → pbone
Status: NEW → ASSIGNED
Flags: needinfo?(pbone)

I retriggered some of the tests, it's definitly real and it's windows only.

Looking at profiles it's unclear. I will do some more experiments and see what I find.

The severity field is not set for this bug.
:pbone, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(pbone)
Severity: -- → S4
Flags: needinfo?(pbone)
Priority: -- → P2

So when I retrigger the existing commits the regression is real, but if I revert the patches and run new try builds with them the change goes away: https://perf.compare/compare-results?baseRev=a24c4101b31b080847b1a6bb9b0863c169979787&baseRepo=try&newRev=dc8ed6d7d8b728538db6475b7f32adba25c7fcfa&newRepo=try&framework=1&search=cpstartup

I found the problem. When we reserve the PHC area on windows, which can be quite large, windows allocates physical memory or swap space immediately to those pages, although we immediately release the memory again this creates a delay. It could also prevent new processes from launching if memory is low. We should instead reserve the address space without allocating physical memory.

These functions can be used more generically and don't need "chunk" in
their name.

Status: ASSIGNED → RESOLVED
Closed: 9 months ago
Resolution: --- → FIXED
Target Milestone: --- → 147 Branch

The patch landed in nightly and beta is affected.
:pbone, is this bug important enough to require an uplift?

For more information, please visit BugBot documentation.

Flags: needinfo?(pbone)
Regressions: 1969856
No longer regressions: 1969856
Flags: needinfo?(pbone)

These functions can be used more generically and don't need "chunk" in
their name.

Original Revision: https://phabricator.services.mozilla.com/D272368

Attachment #9527985 - Flags: approval-mozilla-beta?

firefox-beta Uplift Approval Request

  • User impact if declined: Users on Windows may experience a content process startup time regression. The patch applies to all operating systems but the problem is windows-specific.
  • Code covered by automated testing: yes
  • Fix verified in Nightly: yes
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing:
  • Risk associated with taking this patch: low
  • Explanation of risk level: The patch requests a memory reservation without populating it, rather than populating it eagerly. The code used in this case is used in other places in Firefox's memory allocatur and is well understood.
  • String changes made/needed: None
  • Is Android affected?: no
Attachment #9527986 - Flags: approval-mozilla-beta?
Attachment #9527986 - Attachment description: Bug 1993227 - Reserve the PHC memory range without allocating RAM DONTBUILD → Bug 1993227 - Reserve the PHC memory range without allocating RAM
Attachment #9527985 - Attachment description: Bug 1993227 - Rename some chunk allocation functions DONTBUILD → Bug 1993227 - Rename some chunk allocation functions
Attachment #9527985 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9527986 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Regressions: 2007847
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: