Commit Graph

310 Commits

Author SHA1 Message Date
Justin Lebar
e8eb0d970a 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
Mike Hommey
29dbd867f2 Bug 901211 - Don't use static page size on ia64, sparc and mips. r=jlebar 2013-08-05 09:10:35 +09:00
Ms2ger
21409e5d2c Merge m-c to inbound. 2013-08-02 11:07:57 +02:00
Ms2ger
fe9c33f5f4 Bug 897921 - Remove some dead assignments in makefiles; r=mshal 2013-08-02 09:03:55 +02:00
Justin Lebar
ada67088ce Bug 899880 - Fix jemalloc3 so it works after bug 898558, which changed jemalloc's stats struct. r=glandium 2013-08-01 16:37:54 -07:00
Ehsan Akhgari
085494b95d Bug 895322 - Part 1: Replace the usages of MOZ_STATIC_ASSERT with C++11 static_assert; r=Waldo
This patch was mostly generated by running the following scripts on the codebase, with some
manual changes made afterwards:

# static_assert.sh
#!/bin/bash
# Command to convert an NSPR integer type to the equivalent standard integer type

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.cc" \
         -o -iname "*.mm" \) | \
    xargs -n 1 `dirname $0`/assert_replacer.py #sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_STATIC_ASSERT static_assert
hg rev --no-backup mfbt/Assertions.h \
                   media/webrtc/signaling/src/sipcc/core/includes/ccapi.h \
                   modules/libmar/src/mar_private.h \
                   modules/libmar/src/mar.h


# assert_replacer.py
#!/usr/bin/python

import sys
import re

pattern = re.compile(r"\bMOZ_STATIC_ASSERT\b")

def replaceInPlace(fname):
  print fname
  f = open(fname, "rw+")
  lines = f.readlines()
  for i in range(0, len(lines)):
    while True:
      index = re.search(pattern, lines[i])
      if index != None:
        index = index.start()
        lines[i] = lines[i][0:index] + "static_assert" + lines[i][index+len("MOZ_STATIC_ASSERT"):]
        for j in range(i + 1, len(lines)):
          if lines[j].find("                 ", index) == index:
            lines[j] = lines[j][0:index] + lines[j][index+4:]
          else:
            break
      else:
        break
  f.seek(0, 0)
  f.truncate()
  f.write("".join(lines))
  f.close()

argc = len(sys.argv)
for i in range(1, argc):
  replaceInPlace(sys.argv[i])

--HG--
extra : rebase_source : 4b4a4047d82f2c205b9fad8d56dfc3f1afc0b045
2013-07-18 13:59:53 -04:00
Justin Lebar
820d692af0 Bug 898558 - Rework jemalloc_stats so it exposes how much memory is used for bookkeeping. r=glandium
This patch also gets rid of the redundant "committed" entry, so now
there's no confusion as to which entries overlap.

--HG--
extra : rebase_source : 429f3d44011f02dda43aa10b077c917c4d02fe50
2013-07-29 09:10:53 -07:00
Daniel Holbert
aac499cf28 Bug 581478: undef strdup before (re)defining it in mozalloc_macro_wrappers.h. r=glandium 2013-07-25 18:14:41 -07:00
Mike Shal
fb38e981d0 Bug 889787 - Define XP_LINUX globally; r=ted 2013-07-16 17:10:10 -04:00
Mike Hommey
e9ee5bb8ee Bug 892904 - Remove useless includes of config.mk. r=gps 2013-07-15 18:48:40 +09:00
Gregory Szorc
0a41c9c2f9 Bug 891632 - Port NO_DIST_INSTALL to moz.build; r=joey
Many of the moved variables are likely not needed. moz.build should one
day validate the sandbox's output and error if "useless" variables are
present.

--HG--
extra : rebase_source : 3abdea056c18d00ede8c15b37db60532eca58630
2013-07-10 12:08:21 -07:00
Catalin Iacob
83b78343dc Bug 798914 (part 5) - Use newly introduced mozilla::MallocSizeOf instead of nsMallocSizeOfFun. r=njn.
--HG--
extra : rebase_source : fc472490dd978d165f02f77ed37f07aed6e5bb61
2013-06-23 14:03:39 +02:00
Brian O'Keefe
20b45036df Bug 875934 - Move LIBRARY_NAME to moz.build (batch #2); r=mshal
--HG--
extra : rebase_source : 555b28e5c3412ffc210c60b6fe2fee6f053fd587
2013-06-18 08:13:42 -04:00
Brian O'Keefe
ed17339221 Bug 875934 - Move LIBRARY_NAME to moz.build (batch #1); r=mshal
--HG--
extra : rebase_source : 385d3fd65475ffc18ee44ae088753649470e214b
2013-06-17 15:21:01 -04:00
Joey Armstrong
32009a30fd bug 870406: move CSRCS to mozbuild (config batch #2) r=mshal 2013-06-04 11:08:44 -04:00
Mike Shal
6f32ddf61c Bug 864774 - Part 2: Move CPPSRCS to moz.build as CPP_SOURCES; r=joey CLOSED TREE
From 9e0ba7f425143f545eb6c4b26a9a96b5ade4d8e9 Mon Sep 17 00:00:00 2001
2013-04-23 17:54:15 -04:00
David Zbarsky
7e26888daa Fix b2g build, no bug 2013-05-16 18:07:12 -07:00
Bill McCloskey
6b96448f68 Bug 863116 - MOZ_ALWAYS_INLINE should not inline in debug builds (r=Waldo) 2013-04-19 10:55:34 -07:00
Mike Shal
24b4056720 Bug 846634 - Part 2: Move EXPORTS to moz.build; r=joey 2013-04-16 15:24:43 -04:00
Nicholas Nethercote
41efbb243a Bug 848560 (part 1) - dmd::ClearReports() needs to check if DMD is running before doing anything to avoid crashing. r=jlebar.
--HG--
extra : rebase_source : bdd7a6d1654dfbf562bc534311869248eb3c8a4a
2013-03-25 21:03:47 -07:00
Kyle Machulis
f5e3aadf0b Bug 855465 - Add emacs python mode comments to moz.build files; r=gps 2013-04-01 11:36:59 -07:00
Kyle Machulis
d2b6e6e01a Backout for changeset 03452b187c14 (Bug 855465) due to bustage on a CLOSED TREE; r=qdot 2013-03-29 15:12:58 -07:00
Kyle Machulis
5663b98bc5 Bug 855465 - Add emacs python mode comments to moz.build files; r=gps
--HG--
extra : rebase_source : 004a756492323e1a049586e85b3be5037159df20
2013-03-29 13:56:18 -07:00
Steve Singer
fd35c44e3b Bug 851859 - Set jemalloc's page size based on the architecture instead of assuming it's always 4kb. r=jlebar 2013-03-27 11:32:34 -04:00
Mike Shal
ea1d9b8ba7 Bug 844654 - Part 2: Move MODULE to moz.build; rs=gps 2013-03-19 11:47:00 -07:00
Daniel Holbert
d7c124e721 Bug 851981: Make loop iterator in mozalloc_handle_oom a size_t instead of an int, to fix build warning for signed/unsigned comparison. r=bsmedberg 2013-03-18 10:58:31 -07:00
Gregory Szorc
02d1d31696 Bug 844635 - Part 3: Remove empty Makefile.in files; r=glandium 2013-03-17 18:01:25 -07:00
Adam Roach [:abr]
69afe87e10 Bug 846368 - Add number of bytes requested to OOM last-gasp r=bsmedberg 2013-02-28 13:43:51 -06:00
Gregory Szorc
bab4f2e930 Bug 784841 - Part 18c: Convert /memory, /mfbt, /mozglue; r=ted f=Ms2ger 2013-02-25 12:47:17 -08:00
Nicholas Nethercote
3b5838dd50 Bug 841564 - DMD: Fix the second percentage in stack frame records. r=jlebar. DONTBUILD.
--HG--
extra : rebase_source : 079bce40754ceb975cac4b3e152b294364adcdc1
2013-02-18 17:02:13 -08:00
Rafael Ávila de Espíndola
3f94cbb547 Bug 839338 - ASan alloc/dealloc mismatch in _M_create_nodes/_M_destroy_nodes. r=waldo. 2013-02-12 08:30:16 -05:00
Nicholas Nethercote
27cca99a93 Bug 838942 - DMD: Fix assertion in the test on Windows. r=jlebar. DONTBUILD because DMD isn't built by default.
--HG--
extra : rebase_source : e2075b1b34bbfc7d0a3b9f45523323a7f38dcb63
2013-02-07 11:18:52 -08:00
Nicholas Nethercote
5497077f63 Bug 836054 - DMD: Handle stack entries with PC of 0x0. r=jlebar.
--HG--
rename : accessible/src/base/EventQueue.cpp => accessible/src/base/NotificationController.cpp
rename : accessible/src/base/EventQueue.h => accessible/src/base/NotificationController.h
rename : dom/browser-element/BrowserElementParent.jsm => dom/browser-element/BrowserElementParent.js
rename : testing/modules/AppInfo.jsm => services/healthreport/modules-testing/utils.jsm
extra : rebase_source : a9b8cc73c22c889dd3973bb411a075a7e7d1e954
2013-02-03 20:15:10 -08:00
Daniel Holbert
1f9c560792 Bug 829327: Mark mozalloc_abort() as MOZ_NORETURN (except on ARM, where we're pretty sure it breaks crash stacks). r=cjones 2013-01-11 09:29:02 -08:00
Nicholas Nethercote
ab08574824 Bug 827523 (part 3) - DMD: Add --max-frames and --max-records options. r=jlebar.
--HG--
extra : rebase_source : 9840bcfa2d8fc1127a6f367a94e1d8488ae41c6a
2013-01-07 18:32:38 -08:00
Nicholas Nethercote
c5929f05e0 Bug 827523 (part 2) - DMD: Swap the diff order in test mode. r=jlebar.
--HG--
extra : rebase_source : d8b96799e7353f9d838f31ddb4b1aaca3ab6ca9c
2013-01-07 18:01:07 -08:00
Nicholas Nethercote
75c71bf3f5 Bug 827523 (part 1) - DMD: Remove valloc() from the test. r=jlebar.
--HG--
extra : rebase_source : a5da90a39a14d45d4d841ec22506e66520791e96
2013-01-07 17:59:44 -08:00
Justin Lebar
8371f28da1 Bug 826515 - Occasionally GC DMD stacks. r=njn 2013-01-08 11:04:19 +01:00
Nicholas Nethercote
16e75efa9f Bug 818793 - Add a |aMaxFrames| parameter to NS_StackWalk. r=jlebar,glandium; sr=dbaron. 2012-12-20 21:31:57 -08:00
Nicholas Nethercote
3c6f93780c Bug 820566 - DMD: Improve testing by using a script to filter out platform-specific stuff in the output. r=jlebar.
--HG--
extra : rebase_source : 9afed1fade6007f76d69faa1d3bd8d95516380d5
2013-01-06 19:18:13 -08:00
Nicholas Nethercote
37183ba801 Bug 826183 - DMD: clear reportedness data before running memory reporters and dumping. r=jlebar.
--HG--
extra : rebase_source : 3ea1c71eacdee712b2d1739a8e25cbf854ea0424
2013-01-06 13:34:39 -08:00
Chris Jones
ed3a4953e1 Bug 824224: Make mozalloc_abort() not MOZ_NORETURN and log errors to logcat. r=glandium 2013-01-04 13:28:37 -08:00
Ehsan Akhgari
90bd4b1283 Bug 826779 - Get DMD to build on Windows; r=bbondy 2013-01-04 13:57:27 -05:00
Mike Hommey
d824ba74fd Bug 826171 - Fix strndup in memory/build/mozmemory_wrap.c. r=jlebar 2013-01-03 16:05:20 +01:00
Trevor Saunders
6380733341 bug 822717 - remove checks for old gcc r=glandium 2012-12-18 13:22:28 -05:00
Justin Lebar
4667550ede Bug 824395 - Report used stacks separately from unused stacks. r=njn 2012-12-23 21:48:03 -05:00
Nicholas Nethercote
31198c8eea Bug 824340 - DMD: fix a deadlock when getting stack traces. r=jlebar.
--HG--
extra : rebase_source : c0bb85cddb6abed0eedd49d959001a0b95667946
2012-12-23 17:35:56 -08:00
Nicholas Nethercote
650d95bc63 Bug 824390 - DMD: Don't use PTHREAD_MUTEX_INITIALIZER for non-static mutexes. r=jlebar.
--HG--
extra : rebase_source : a8cdd5e3d3db05cbb78441477508c05168e67ecd
2012-12-23 17:35:23 -08:00
Nicholas Nethercote
53b2e2c546 Bug 822148 (part 9) - DMD: rename "groups" as "records". r=jlebar.
--HG--
extra : rebase_source : e48e309bb7efc62ef52202e50e0f662814108e54
2012-12-17 21:54:08 -08:00
Nicholas Nethercote
2f717ac5d7 Bug 822148 (part 8) - DMD: remove a friend declaration. r=jlebar.
--HG--
extra : rebase_source : c9c23e0bcb2d6a50085daf23d7be04614efa7ac8
2012-12-19 19:48:43 -08:00