gecko-dev/memory/mozjemalloc
Justin Lebar 1cfc0ff873 Bug 903420 - Two fixes to jemalloc's memory reporters. r=glandium
1) We were counting "dirty" pages in "waste", when we shouldn't have
   been.  This was causing the assertion at the end of jemalloc_stats()
   which checks that mapped memory is greater than committed memory to
   fail.

2) jemalloc_stats used stats_chunks.curchunks to measure the number of
   mapped pages.  This was problematic for two reasons.

   a) stats_chunks.curchunks was not locked when it was modified in
      chunk_{de}alloc(), so its value could be garbage.

   b) Even if it had been locked properly, it was possible for an
      allocation to occur during a call to jemalloc_stats which would
      cause the measured amount of allocated memory to exceed the
      measured amount of mapped memory, tripping the assertion we
      tripped in (1).

   We fixed these issues by deleting stats_chunks entirely, and by
   introducing huge_mapped, which measures the amount of memory mapped
   by huge allocations (and is properly protected by huge_mtx).

   We now measure the amount of mapped memory by adding huge_mapped and
   each arena's mapped memory, and we do this in such a way that even if
   an allocation occurs during our call to jemalloc_stats, we'll still
   get a consistent result (where mapped >= committed).
2013-08-15 11:15:04 -07:00
..
Makefile.in Bug 897921 - Remove some dead assignments in makefiles; r=mshal 2013-08-02 09:03:55 +02:00
jemalloc.c Bug 903420 - Two fixes to jemalloc's memory reporters. r=glandium 2013-08-15 11:15:04 -07:00
jemalloc_types.h Bug 898558 - Rework jemalloc_stats so it exposes how much memory is used for bookkeeping. r=glandium 2013-07-29 09:10:53 -07:00
linkedlist.h
moz.build Bug 875934 - Move LIBRARY_NAME to moz.build (batch #2); r=mshal 2013-06-18 08:13:42 -04:00
osx_zone_types.h
ql.h
qr.h
rb.h