Closed Bug 1562825 Opened 6 years ago Closed 6 years ago

3.15 - 3.96% Base Content Heap Unclassified (windows10-64-shippable, windows10-64-shippable-qr) regression on push 133ac0d11428079ceaeceab4dda050b4ba240e3b (Sat June 29 2019)

Categories

(Core :: WebVR, defect, P2)

59 Branch
defect

Tracking

()

RESOLVED FIXED
mozilla69
Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- unaffected
firefox69 --- wontfix
firefox70 --- wontfix
firefox71 --- fixed
firefox72 --- fixed

People

(Reporter: alexandrui, Assigned: daoshengmu)

References

(Regression)

Details

(Keywords: perf, perf-alert, regression)

Attachments

(1 file)

We have detected an awsy regression from push:

https://hg.mozilla.org/integration/autoland/pushloghtml?changeset=133ac0d11428079ceaeceab4dda050b4ba240e3b

As author of one of the patches included in that push, we need your help to address this regression.

Regressions:

4% Base Content Heap Unclassified windows10-64-shippable-qr opt 1,552,937.00 -> 1,614,421.33
4% Base Content Heap Unclassified windows10-64-shippable-qr opt 1,553,547.33 -> 1,614,604.00
3% Base Content Heap Unclassified windows10-64-shippable opt 1,574,870.33 -> 1,624,525.33

You can find links to graphs and comparison views for each of the above tests at: https://treeherder.mozilla.org/perf.html#/alerts?id=21696

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://wiki.mozilla.org/AWSY/Tests

Flags: needinfo?(kgilbert)
Component: Raptor → WebVR
Product: Testing → Core
Target Milestone: --- → mozilla69
Version: Version 3 → 59 Branch

I am investigating this now.

Assignee: nobody → kgilbert
Flags: needinfo?(kgilbert)
Priority: -- → P2

Hi Kearwood, any news on this?

Flags: needinfo?(kgilbert)

(In reply to Alexandru Ionescu :alexandrui from comment #2)

Hi Kearwood, any news on this?

Refactoring which was included in that push merged several classes, which may have caused an increased allocation on initialization that would not have normally occurred until a WebVR/WebXR site becomes active. I haven't found a single source of allocation to the degree in the report, but have identified some ways that we can defer allocations until a WebVR/WebXR site becomes active.

I'll follow up with some patches shortly.

Flags: needinfo?(kgilbert)

Hi Kearwood. I assume you got somehow to a conclusion until now. Could you share it? Thanks.

Flags: needinfo?(kgilbert)

(In reply to Alexandru Ionescu :alexandrui from comment #4)

Hi Kearwood. I assume you got somehow to a conclusion until now. Could you share it? Thanks.

Hello,

I apologize as my time has been spread thin recently. Investigation of this is still ongoing. Although it does not initially appear to account for the amount of memory in the report, it seems that the clearest way forward is to make some iterative changes that lazily initialize some of the VRManager related structures.

I will be starting PTO in a couple of weeks. If this is not resolved by then, I'll be sure to hand off my findings to others to continue until I am back.

Flags: needinfo?(kgilbert)

Hi Kearwood, could you give us an update please? thanks

Flags: needinfo?(kgilbert)

I have returned from PTO. I'll bump this up my queue and/or see if my colleagues have made any discoveries.

Flags: needinfo?(kgilbert)

Hi kip, any news on this p2? Thanks

Flags: needinfo?(kgilbert)

According to https://hg.mozilla.org/integration/autoland/pushloghtml?changeset=133ac0d11428079ceaeceab4dda050b4ba240e3b changset, that is related to our initial work for using command buffer for VR service tests. I guess we can take a look into the timing of this command buffer creation.

I am going to work on this bug this week.

Assignee: kgilbert → dmu

The root cause is VRServiceHost::Shutdown() [1] will call PuppetRest(), then that will allocate the heap memory.

https://searchfox.org/mozilla-central/rev/2a10f4812f3f7c7645d253a4fe52f26bf58e20e8/gfx/vr/VRServiceHost.cpp#80

Pushed by dmu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1b7469047904 Checking if puppet is active before initializing VR puppet command buffers. r=kip
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED

Hi Daosheng, do you think this fix is a good candidate for an uplift to beta? If it is, please request the uplift, thanks.

Flags: needinfo?(dmu)

Comment on attachment 9107085 [details]
Bug 1562825 - Checking if puppet is active before initializing VR puppet command buffers.

Beta/Release Uplift Approval Request

  • User impact if declined: My patch fixes the issue of redundant heap allocation, if denying it, the heap will continue to be allocated.
  • Is this code covered by automated tests?: No
  • 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): It is happened at VRServiceTest that usually be run when doing smog tests. This heap allocation is happened when FF is doing shutdown. Therefore, for general users, they can get back this 3% heap allocation after applying this patch also with very low risk.
  • String changes made/needed:
Flags: needinfo?(dmu)
Attachment #9107085 - Flags: approval-mozilla-beta?

Comment on attachment 9107085 [details]
Bug 1562825 - Checking if puppet is active before initializing VR puppet command buffers.

Fix for an awsy memory regression, patch is evaluated as low risk, uplift approved for 71 beta 10, thanks.

Attachment #9107085 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Clearing NI

Flags: needinfo?(kgilbert)
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: