Closed Bug 1307768 Opened 8 years ago Closed 8 years ago

Regression from Sep 22 2016 caused Memory tool to display asm.js heap area with the whole virtually allocated size instead of the actual allocated size in JavaScript.

Categories

(DevTools :: Memory, defect, P2)

43 Branch
x86_64
All
defect

Tracking

(firefox52 fixed)

RESOLVED FIXED
Firefox 52
Tracking Status
firefox52 --- fixed

People

(Reporter: jujjyl, Unassigned)

Details

Attachments

(2 files)

Attached file hello_world.tar.gz
STR:

1. Open hello_world.html
2. Open Devtools Memory tab and do a snapshot.

Observed:

The resulting snapshot shows a 6GB memory allocation for the asm.js heap.

Expected:

The actual heap size allocated in JS code is 16MB, the memory tool is reporting the 64bit virtually reserved guardband area in the size.

Mozregression points the cause at https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=89cf1ca5cf6c88f356edbc246521cdf0853411c2&tochange=1e3b7a0422b6533d5aca29d92fec1e3fd31149ec
Thanks for the regression range!
Flags: needinfo?(bbouvier)
Priority: -- → P2
Using the macro that defines all the fields has a few drawbacks; in particular, in ClassInfo::sizeOfAllThings, all the fields member get added altogether:

http://searchfox.org/mozilla-central/source/js/public/MemoryMetrics.h#191

and this gets called by the memory reporter devtool through this:

http://searchfox.org/mozilla-central/source/js/src/jsobj.cpp#3826

I am not sure to understand all the consequences of keeping the wasmGuardPageSize in this set of fields, so I think it might be simpler and better to just put it outside of the meta-macro. There is special handling of this field already for the about:memory reporting, which I assume is the most important thing we want to be able to keep track of, for the guard page sizes.

I've considered making other macros, like ADD_SIZE_TO_N_IF_NOT_IGNORE (using the servoKind Ignore), but it was unclear in which members this should be used or not.

Verified that with this patch:
- the wasm vsize doesn't appear anymore in the memory reporter devtool
- about:memory still shows the wasm vsize at the bottom end.
Flags: needinfo?(bbouvier)
Attachment #8801088 - Flags: review?(n.nethercote)
Attachment #8801088 - Flags: review?(n.nethercote) → review+
Pushed by bbouvier@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/2ef2b3f6e7fa
Don't include wasmGuardPages with the rest of the ClassInfo fields; r=njn
https://hg.mozilla.org/mozilla-central/rev/2ef2b3f6e7fa
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 52
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: