Closed Bug 698953 Opened 13 years ago Closed 5 years ago

Zero "heap-allocated" value leading to bogus values (including negative "heap-unclassified") in about:memory (MacOS 10.7 with --disable-jemalloc)

Categories

(Toolkit :: about:memory, defect)

All
macOS
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: n.nethercote, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [MemShrink:P3])

Attachments

(4 files)

In bug 683106, Trevor saw this:

  OSX 10.7.2 x86_64 rev/04b4ea333800

  21,939,504 B (100.0%) -- explicit
  ├──522,557,384 B (2381.81%) -- layout
  │  ├──520,972,208 B (2374.59%) -- shell(tables.php.html)

  ├──334,171,529 B (1523.15%) -- dom
  ├──24,031,584 B (109.54%) -- js

  └──-869,789,110 B (-3964.49%) -- heap-unclassified

In bug 696761, Limi saw this:

  690.16 MB (100.0%) -- explicit
  ├──832.62 MB (120.64%) -- js
  │  ├──238.87 MB (34.61%) -- gc-heap-chunk-dirty-unused
  │  ├──110.50 MB (16.01%) -- compartment([System Principal], 0x1009fe400)

and his heap-unclassified was negative.

In both cases, the "explicit" number is way too low.  Something's going wrong.  To have a chance to diagnose it we'll need (a) full output of about:memory?verbose in one of the bogus cases, and possibly also (b) steps to reproduce.

The common factor is that both Trevor and Limi are using MacOS 10.7.
We're going to turn on jemalloc for 10.7 Real Soon Now, so this might just fix itself.
On Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:10.0a1) Gecko/20111101 Firefox/10.0a1.
Here's the problem:

  0 B -- heap-allocated

All the other bogus values are derived from that.

Sounds like the 10.7 jemalloc turn-on will fix this then.  In the meantime, if we change GetHeapAllocated() and GetHeapUnallocated() to return -1 (meaning "unknown") then about:memory should degrade gracefully.
OS: All → Mac OS X
Summary: Too-low "explicit" values leading to negative "heap-unclassified" values in about:memory → Zero "heap-allocated" value leading to bogus values (including negative "heap-unclassified") in about:memory, on MacOS 10.7
Judging from bug 694896, the preferred way to detect 10.7 is something like this?

  malloc_zone_t *default_zone = malloc_default_zone();
  bool isLion = (default_zone->version == LION_MALLOC_ZONE_T_VERSION);

We should probably do this even though jemalloc will be landing soon, since you can build with --disable-jemalloc.
nsToolkit::OnLionOrLater() is probably easier!
Limi has the same problem.
Component: General → about:memory
Product: Core → Toolkit
QA Contact: general → about.memory
Attached file about:memory verbose
rev/67d1049b0bf9
./Nightly.app/Contents/MacOS/firefox-bin -safe-mode -new-tab ./tables.php.html
Assignee: nobody → nnethercote
Whiteboard: [MemShrink] → [MemShrink:P3]
Summary: Zero "heap-allocated" value leading to bogus values (including negative "heap-unclassified") in about:memory, on MacOS 10.7 → Zero "heap-allocated" value leading to bogus values (including negative "heap-unclassified") in about:memory (MacOS 10.7 with --disable-jemalloc)
Assignee: n.nethercote → nobody
Attached file FF29 memory report
I guess I should update this with a new report.
Thanks for all the hard work Nicholas.

Build identifier: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:29.0) Gecko/20100101 Firefox/29.0

This bug is no longer serving a useful purpose.

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

Attachment

General

Created:
Updated:
Size: