Commit Graph

541 Commits

Author SHA1 Message Date
Ehsan Akhgari
3bdb6e5549 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-25 12:42:35 -04:00
Chris Peterson
e935f0080e Bug 1129326 - Remove nonstandard let blocks from memory/replace/dmd/test/test_dmd.js. r=njn 2015-01-24 23:37:31 -08:00
Brian Smith
f2bb5b127e Bug 1128413, Part 4: Fix warnings in mozilla-config.h and gcc-stl-wrapper.template.h, r=glandium 2015-02-02 17:35:19 -08:00
Mike Hommey
715db83e04 Bug 1126593 - Add a global fallible instance, so that using fallible works directly, everywhere. r=njn 2015-02-02 09:56:13 +09:00
Mike Hommey
ccbcff9892 Bug 1120272 - Expose _aligned_alloc and _aligned_free from mozglue. r=njn 2015-01-20 13:10:00 +09:00
Seth Fowler
792169e9e2 Bug 1121297 (Part 2) - Make VolatileBuffer threadsafe. r=glandium 2015-01-16 15:47:35 -08:00
Seth Fowler
8145b9d7af Bug 1121297 (Part 1) - Move VolatileBuffer into libxul. r=glandium 2015-01-16 15:47:22 -08:00
Nicholas Nethercote
175ee20d94 Bug 1121830 - DMD: add "num" property to blocks in the output. r=mccr8.
The new "num" property lets identical blocks be aggregated in the output. This
patch only uses the "num" property for dead blocks, because that's where the
greatest potential benefit lies, but it could be used for live blocks as well.

On one test case (a complex PDF file) running with --mode=cumulative
--sample-below=1 this patch had the following effects.

- Change in running speed was negligible.

- Compressed output file size dropped from 8.8 to 5.0 MB.

- Compressed output file size dropped from 297 to 50 MB.

- dmd.py runtime (without stack fixing) dropped from 30 to 8 seconds.
2015-01-15 20:38:38 -08:00
Nicholas Nethercote
5c7155b2c7 Bug 1122337 - Mark DMD directories as FAIL_ON_WARNINGS. r=glandium.
The DEFINES and XPCOM_API changes are needed to get rid of "inconsistent dll
linkage" warnings on Windows builds.
2015-01-15 21:17:18 -08:00
Mike Hommey
6e294f26b9 Bug 1121314 - Avoid needing the arena in chunk_alloc_default to avoid possible infinite loops involving a0malloc. r=njn
The infinite loop happens if chunk_alloc_arena needs to be called when a0malloc
is called. It in turn calls chunk_alloc_default, which uses tsd, which calls
a0malloc if it's the first time the tsd is being gotten from the current thread.
tsd only uses a0malloc on platforms where there is no native thread local storage
support, which, for Mozilla, essentially means anything that is not Linux.

But the tsd is only neededto get the dss precedence setting of the given arena.
That setting has no effect when dss is disabled, which it is on Windows and Mac.

Moreover, the default setting for dss precedence is "secondary", which means
jemalloc only tries dss after it failed to get memory with mmap/VirtualAlloc.
Considering the cases where mmap/VirtualAlloc would fail essentially means
there is shortage of address space, sbrk() is not going to have much more
success, so we might as well disable dss support on all platforms, avoiding
the infinite loop problem on Android and B2G as well.
2015-01-14 15:18:49 +09:00
Mike Hommey
c63df6c965 Bug 1120798 - Use a larger realloc in one of the DMD tests so that it passes for mozjemalloc as well as jemalloc3. r=njn 2015-01-14 15:18:49 +09:00
Masatoshi Kimura
bae0a32948 Bug 1120062 - Part 1: Remove most Nullptr.h includes. r=waldo 2015-01-11 11:34:52 +09:00
Brad Lassey
319f2787b1 bug 1083116 - build fails: malloc_decls.h conflicting types for 'malloc_usable_size' r=glandium 2015-01-06 19:58:36 -05:00
Nicholas Nethercote
c0dc19963f Bug 1088343 (part 2) - Enable test_dmd on Win64. r=glandium. 2015-01-08 16:04:43 -08:00
Ehsan Akhgari
a7f747ec15 Bug 1118486 - Part 1: Use = delete instead of MOZ_DELETE directly; r=Waldo
Most of this patch (with the exception of dom/bindings/Codegen.py) was
generated by the following bash script:

#!/bin/bash

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "*/.git*" \
       ! -wholename "obj-*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_DELETE '= delete'
2015-01-08 23:19:05 -05:00
Guilherme Goncalves
2244a782eb Bug 899126 - Part 2 - Measure bookkeeping in jemalloc3. r=glandium. 2014-12-29 13:42:14 -08:00
Guilherme Goncalves
acf0451437 Bug 899126 - Part 1.5 - Implement bookkeeping for jemalloc3. r=glandium 2014-12-29 13:37:24 -08:00
Jan Beich
79938f4ff1 Bug 1115078 - Unbreak MOZ_JEMALLOC3 build on FreeBSD after bug 899126. r=glandium 2014-12-23 12:32:00 -05:00
Guilherme Goncalves
a9645998de Bug 1110514 - Use arena.<i>.purge to free jemalloc3's dirty pages. r=glandium 2014-12-23 02:41:00 -05:00
Guilherme Goncalves
d20ffe1ff9 Bug 1108045 - Junk memory with jemalloc3. r=glandium 2014-12-23 07:44:00 -05:00
Guilherme Goncalves
87b8a8fea0 Bug 762448 - Bump opt.lg_dirty_mult in jemalloc3 to reduce number of dirty pages. r=glandium 2014-12-23 06:01:00 -05:00
Guilherme Goncalves
41ea932ae0 Bug 762448 - Deduct bin_unused from waste in jemalloc3's stats. r=glandium 2014-11-12 13:00:00 -05:00
Ryan VanderMeulen
aeb09b6421 Merge m-c to inbound. a=merge 2014-12-23 13:18:02 -05:00
Guilherme Goncalves
0d08c44fdb Bug 1112566 - Add a isblank definition for MSVC < 2013. r=glandium 2014-12-23 15:27:19 +09:00
Guilherme Goncalves
b334b3e89f Bug 1112566 - Move variable declaration to the top its block for MSVC compatibility. r=jasone,r=glandium 2014-12-23 15:27:18 +09:00
Vladimir Vukicevic
3a6dcbff13 Bug 1112566 - Use jemalloc C99 msvc compat headers when building mozjemalloc compat glue and jemalloc3 replace-malloc library. r=glandium 2014-12-23 15:27:18 +09:00
Guilherme Goncalves
8c8d280fc9 Bug 899126 - Part 1: Implement bin_unused for jemalloc3. r=glandium 2014-12-19 09:15:00 -05:00
Nicholas Nethercote
0e5f1d058a Bug 1112968 - dmd.py: Tweak the --alloc-fns list for better effect on Windows. r=mccr8. 2014-12-18 18:59:53 -08:00
Nicholas Nethercote
14fbd0e896 Bug 1112968 - dmd.py: Tweak the --alloc-fns list for better effect on Mac. r=mccr8. 2014-12-17 19:10:59 -08:00
Guilherme Goncalves
b9796fea26 Bug 1094275 - Update the in-tree copy of jemalloc3 to commit b4acf73. r=glandium 2014-12-17 09:14:48 +09:00
Nicholas Nethercote
b6bbde9078 Bug 1110455 - Add --sort-by=num-blocks option to dmd.py. r=mccr8. 2014-12-15 15:04:39 -08:00
Nicholas Nethercote
327fd8b037 Bug 1111419 - dmd.py: add a cache for recordKeyParts. r=mccr8.
This reduces the runtime on my Linux machine for one large DMD output file from
235 seconds to 105 seconds.
2014-12-15 15:04:34 -08:00
Ehsan Akhgari
6ef7b88a88 Bug 1109746 - Fix more bad implicit constructors in some random code across the tree 2014-12-13 14:17:04 -05:00
Ryan VanderMeulen
2a2408987d Backed out changesets 34a66a625618, 32db3daa20fe, and ac15ba8568c5 (bug 1102219) for Gaia unit test failures. 2014-12-11 11:28:30 -05:00
ziyunfei
af634a17e6 Bug 1102219 - Part 3: Replace String.prototype.contains with String.prototype.includes in chrome code. r=till 2014-12-10 20:50:00 -05:00
Chris Peterson
f835b48bc8 Bug 1108934 - Fix -Wunused-const-variable warning-as-error in non-unified build of memory/mozalloc. r=glandium 2014-12-08 21:26:27 -08:00
Nicholas Nethercote
fc52cc1d2d Bug 1100851 - Print the mode in dmd.py's output. r=mccr8. 2014-12-10 13:33:50 -08:00
Nicholas Nethercote
84279946f2 Bug 1100851 - Tweak DMD to account for the fact that $DMD can now be undefined. r=glandium.
Now that defining $DMD is no longer necessary to run DMD, this patch does the
following.
- Removes all the places where we set DMD=1 (test harnesses, etc.)
- Still handles DMD=1, for backwards compatibility.
- Prints "$DMD is undefined" at DMD start-up if appropriate.
- Writes a |null| value for |dmdEnvVar| in the JSON if $DMD is undefined. Bumps
  the DMD output version number accordingly.
- Changes a bunch of the test files accordingly, including changing the mode of
  script-ignore-alloc-fns.json in order to test a case where $DMD is undefined.
2014-11-27 21:04:46 -08:00
Mike Hommey
2cd80aec0f Bug 1104634 - Force optimize mozjemalloc on --disable-optimize builds. r=gps
The reason for --disable-optimize is to make debugging easier, but not many
people actually need a high level of debuggability of the allocator itself.
This works around the issue that the Android NDK's definition of ffs is
broken when compiling without optimization, while avoiding to add yet another
configure test.
2014-12-10 10:50:44 +09:00
Nicholas Nethercote
4beda4eda0 Bug 1094552 (part 6) - DMD: add support for cumulative heap profiling. r=mccr8.
By adding a new "cumulative" mode.
2014-10-30 20:22:47 -07:00
Nicholas Nethercote
1794d21329 Bug 1094552 (part 5) - DMD: choose the profiling mode at start-up. r=mccr8.
This patch moves profiling mode selection from post-processing (in dmd.py) to
DMD start-up. This will make it easier to add new kinds of profiling, such as
cumulative heap profiling.

Specifically:

- There's a new --mode option. |LiveWithReports| is the default, as it is
  currently.

- dmd.py's --ignore-reports option is gone.

- There's a new |mode| field in the JSON output.

- Reports-related operations are now no-ops if DMD isn't in LiveWithReports
  mode.

- Diffs are only allowed for output files that have the same mode.

- A new function ResetEverything() replaces the SetSampleBelowSize() and
  ClearBlocks(), which were used by the test to change DMD options.

- The tests in SmokeDMD.cpp are split up so they can be run multiple times, in
  different modes. The exact combinations of tests and modes has been changed a
  bit.
2014-12-08 14:45:14 -08:00
Nicholas Nethercote
5a1116e588 Bug 1094552 (part 4) - Rename AnalyzeReports() as Analyze(). r=mccr8.
Because DMD is no longer just about measuring memory reports coverage, but is
also used for more general heap profiling.
2014-12-08 14:45:13 -08:00
Nicholas Nethercote
359fa156fe Bug 1102525 (part 1) - Add InfallibleAllocPolicy to mozalloc. r=glandium. 2014-12-08 14:45:10 -08:00
Chris Peterson
c2434476b9 Back out part of changeset 2147895c5dc4 (bug 1107814) because of non-unified OS X build breakage on a CLOSED TREE. a=philor 2014-12-08 21:42:58 -08:00
Chris Peterson
73094687a8 Bug 1107814 - Part 2: Mark some directories as FAIL_ON_WARNINGS conditionally for some compilers. r=gps 2014-12-04 01:11:14 -08:00
Mike Hommey
46a9a53481 Bug 1104173 - Properly export jemalloc_* symbols from the jemalloc3 replace-malloc library. r=njn
Bug 818922 made MOZ_REPLACE_MALLOC a global define, and that changed the
defines set when building mozjemalloc_compat.c for the jemalloc3
replace-malloc library. In turn, this made the symbol munging wrong for
that library, making the jemalloc_* functions exported as je_jemalloc_*
instead of replace_jemalloc_*.
2014-11-26 16:04:25 +09:00
Nicholas Nethercote
d71b83ac3e Bug 1094552 (part 3) - DMD: rename |Block| as |LiveBlock|. r=mccr8.
This is to give better contrast with |DeadBlock|, which will be added in the
next patch.
2014-11-18 18:57:20 -08:00
Nicholas Nethercote
68e5feba63 Bug 1094552 (part 2) - DMD: tweak Range and Enum use. r=mccr8.
This patch:

- Uses |auto| in Range loops, so more of them fit on a single line.

- Converts one use of HashSet::Enum (which is only needed if you're modifying
  the HashSet as you iterate) to HashSet::Range.
2014-11-23 17:39:17 -08:00
Nicholas Nethercote
f09200b4e3 Bug 1094552 (part 1) - DMD: rename mSampled field. r=mccr8.
The getter is called IsSampled(), so the field should match that.
2014-11-18 19:11:36 -08:00
Emanuel Hoogeveen
36b69259fe Bug 1100485 - Lock chunks during double purging to avoid racing with allocation. r=glandium 2014-11-19 09:34:00 +01:00