Closed Bug 1035244 Opened 11 years ago Closed 11 years ago

[Gecko] ~50ms Phone and Contacts Launch Regression

Categories

(Core :: Graphics: Canvas2D, defect, P1)

ARM
Gonk (Firefox OS)
defect

Tracking

()

RESOLVED FIXED
mozilla34

People

(Reporter: mchang, Assigned: jrmuizel)

References

Details

(Keywords: perf, regression, Whiteboard: [c=regression p= s= u=])

Attachments

(1 file)

Phone cold launch time regressed ~50ms, Contacts regressed ~50ms. Contacts link: https://datazilla.mozilla.org/b2g/?branch=master&device=hamachi&range=7&test=cold_load_time&app_list=contacts&app=contacts&gaia_rev=7a32f4ce7f922ed1&gecko_rev=06e9a27a6fcc&plot=median Phone Link: https://datazilla.mozilla.org/b2g/?branch=master&device=flame&range=7&test=cold_load_time&app_list=phone&app=phone&gaia_rev=b597b86274ab109d&gecko_rev=2991fb290e14&plot=median Backout Bot: Gaia: d813860f012e653df96f7b1a02dd28f962f46630 Gecko: 192089:ac6960197eb6bdd5501a7ddd23dcda6976a8a9e0 Test: Contacts Median: 700 Mean: 709 Std Dev: 36 Test: Phone Median: 428 Mean: 434 Std Dev: 21 Gaia: 36306be1b1b41a9bc973a24b86271a8c8ae38162 Gecko: 192236:06e9a27a6fcc5e665588fa4f670d141fd9bac694 Test: Contacts Median: 753 Mean: 758 Std Dev: 28 Test: Phone Median: 504 Mean: 507 Std Dev: 37 Probably a Gecko regression.
For contacts, datazilla is showing a gecko regression: Bad: 9c43461f16ba Good: 06e9a27a6fcc Using gaia: 7a32f4ce7f922ed1 For phone: Good: 945e47bb2af5 Bad: 2991fb290e14
Keywords: regression
Assignee: nobody → jhylands
Mason - Is this bad enough of a perf regression to block? If so, please nominate it for the first applicable release this should block.
Flags: needinfo?(mchang)
This would block 2.1 I believe (current master), since it happened on July 3. Blocker criteria is listed here: https://wiki.mozilla.org/FirefoxOS/Performance/Triage 50ms is on the bottom end of optional blockers. I should probably investigate this a little more before we make that decision.
Flags: needinfo?(mchang)
Alright, I'll put this on the nom queue then.
blocking-b2g: --- → 2.1?
After bisecting, this appears to be a gecko regression caused by this commit: commit b8114d206e5e2a3067c92550d73c55402d1909d8 Author: Jeff Muizelaar <jmuizelaar@mozilla.com> Date: Tue Jul 1 17:20:07 2014 +0200 Bug 1026998. Initialize size CanvasRenderingContext2D. r=bas This fixes an unitiailized read found by valgrind. Jeff, any ideas on why this commit would cause a 50 ms launch regression in only the contacts and phone apps?
Flags: needinfo?(jmuizelaar)
Blocks: 1026998
Component: Gaia → Canvas: 2D
Product: Firefox OS → Core
Version: unspecified → Trunk
Random guess: Jeff's patch for bug 1026998 initialises the uninitialised fields thusly CanvasRenderingContext2D::CanvasRenderingContext2D() - : mForceSoftware(false), mZero(false), mOpaque(false), mResetLayer(true) + : mForceSoftware(false) + // these are the default values from the Canvas spec + , mWidth(300), mHeight(150) and I wonder if doing so somehow causes a bitmap-y style object to be allocated and initialised at the 300x150 size? My initial proposed fix set them both to zero and that seemed to also stop Valgrind complaining, FWIW.
Summary: [Gaia] ~50ms Phone and Contacts Launch Regression → [Gecko] ~50ms Phone and Contacts Launch Regression
Jon can you try setting those members to 0 to see if that fixes the regression?
Flags: needinfo?(jmuizelaar) → needinfo?(jhylands)
Jeff, sorry, if you can attach a small patch that I can apply, I can re-run the performance test.
Flags: needinfo?(jhylands) → needinfo?(jmuizelaar)
Here's a patch
Flags: needinfo?(jhylands)
I'm assigning this bug to Jeff, but I will test his patch to see if that fixes the regression.
Assignee: jhylands → jmuizelaar
Flags: needinfo?(jhylands)
Jeff, that patch appears to fix the regression. Please submit the patch however you normally do, and close the bug once the patch lands.
Status: NEW → ASSIGNED
Comment on attachment 8453306 [details] [diff] [review] Initialize to 0,0 Review of attachment 8453306 [details] [diff] [review]: ----------------------------------------------------------------- It looks like initializing to 0, 0 gives us better behaviour. So let's do that instead.
Attachment #8453306 - Flags: review?(bas)
Comment on attachment 8453306 [details] [diff] [review] Initialize to 0,0 Review of attachment 8453306 [details] [diff] [review]: ----------------------------------------------------------------- What about the canvas spec? It mentions that these sizes are specified in the Canvas spec.
Bas, is this a r-? If so please update its state. Please clarify if you need any other changes from Jeff.
Flags: needinfo?(bas)
(In reply to Bas Schouten (:bas.schouten) from comment #13) > Comment on attachment 8453306 [details] [diff] [review] > Initialize to 0,0 > > Review of attachment 8453306 [details] [diff] [review]: > ----------------------------------------------------------------- > > What about the canvas spec? It mentions that these sizes are specified in > the Canvas spec. I assume we'll get those from a canvas element...
Comment on attachment 8453306 [details] [diff] [review] Initialize to 0,0 Review of attachment 8453306 [details] [diff] [review]: ----------------------------------------------------------------- Do we? I mean.. there's a comment there? I assume someone put it there for a reason? I'll r+ this for now, but let's make sure we double-check.
Attachment #8453306 - Flags: review?(bas) → review+
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
Flags: needinfo?(bas)
Flags: needinfo?(jmuizelaar)
blocking-b2g: 2.1? → ---
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: