Commit Graph

512 Commits

Author SHA1 Message Date
Guilherme Goncalves
fd6d2cd524 Bug 1094275 - Update the in-tree copy of jemalloc3 to commit b4acf73. r=glandium 2014-12-17 09:14:48 +09:00
Nicholas Nethercote
ae322f3e0c Bug 1110455 - Add --sort-by=num-blocks option to dmd.py. r=mccr8.
--HG--
extra : rebase_source : 6d6aa87f102ee069f4f5052607463380c656f80d
2014-12-15 15:04:39 -08:00
Nicholas Nethercote
9575d97232 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.

--HG--
extra : rebase_source : bd567319c1207a09fa47b94571066109de1cc9e7
2014-12-15 15:04:34 -08:00
Ehsan Akhgari
57666729b5 Bug 1109746 - Fix more bad implicit constructors in some random code across the tree
--HG--
extra : amend_source : 48ca151cb1ca2193404c65831556051c02093914
2014-12-13 14:17:04 -05:00
Ryan VanderMeulen
965a7164c0 Backed out changesets 34a66a625618, 32db3daa20fe, and ac15ba8568c5 (bug 1102219) for Gaia unit test failures.
--HG--
extra : rebase_source : 0266cc0b2a6568ca653885745f381df8d6d167ec
2014-12-11 11:28:30 -05:00
ziyunfei
a2bf95535b 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
819b3e44f6 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
8ad9dc2508 Bug 1100851 - Print the mode in dmd.py's output. r=mccr8.
--HG--
extra : rebase_source : ae0f985ba8a74dfec8a36ff1a380279ed18b675b
2014-12-10 13:33:50 -08:00
Nicholas Nethercote
11c84094c8 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.

--HG--
extra : rebase_source : eb1ef5722410734ce6d7658465ff6f442ee4ed49
2014-11-27 21:04:46 -08:00
Mike Hommey
e2323ac4eb 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
7553049ead Bug 1094552 (part 6) - DMD: add support for cumulative heap profiling. r=mccr8.
By adding a new "cumulative" mode.

--HG--
extra : rebase_source : 5c851b7c594a134fae48393ff0becfd057715041
2014-10-30 20:22:47 -07:00
Nicholas Nethercote
5a86c99894 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.

--HG--
rename : memory/replace/dmd/test/full-reports-empty-expected.txt => memory/replace/dmd/test/full-empty-dark-matter-expected.txt
rename : memory/replace/dmd/test/full-heap-empty-expected.txt => memory/replace/dmd/test/full-empty-live-expected.txt
rename : memory/replace/dmd/test/full-heap-sampled-expected.txt => memory/replace/dmd/test/full-sampled-live-expected.txt
rename : memory/replace/dmd/test/full-reports-unsampled1-expected.txt => memory/replace/dmd/test/full-unsampled1-dark-matter-expected.txt
rename : memory/replace/dmd/test/full-heap-unsampled1-expected.txt => memory/replace/dmd/test/full-unsampled1-live-expected.txt
rename : memory/replace/dmd/test/full-reports-unsampled2-expected.txt => memory/replace/dmd/test/full-unsampled2-dark-matter-expected.txt
rename : memory/replace/dmd/test/script-diff-basic-expected.txt => memory/replace/dmd/test/script-diff-live-expected.txt
rename : memory/replace/dmd/test/script-diff1.json => memory/replace/dmd/test/script-diff-live1.json
rename : memory/replace/dmd/test/script-diff2.json => memory/replace/dmd/test/script-diff-live2.json
extra : rebase_source : bf32cc4e0d82aa1a20ceb55e8ea259850b49cc06
2014-12-08 14:45:14 -08:00
Nicholas Nethercote
4409b85c94 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.

--HG--
extra : rebase_source : 82b4579de240037f96cf6618b15870925adc431b
2014-12-08 14:45:13 -08:00
Nicholas Nethercote
a380fc6e28 Bug 1102525 (part 1) - Add InfallibleAllocPolicy to mozalloc. r=glandium.
--HG--
extra : rebase_source : a79162fb7f73e52c5c8df29c8229efc64c3451e5
2014-12-08 14:45:10 -08:00
Chris Peterson
1f52c2c357 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
9cad8a95ff 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
e8aa5ac59c 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
38d9efd544 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.

--HG--
extra : rebase_source : cbc767fcc5667cfed108ca7c4ebf1d7e82aa185e
2014-11-18 18:57:20 -08:00
Nicholas Nethercote
e1c55df8d8 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.

--HG--
extra : rebase_source : 09b011cd69218c06984f06420d375839cd4e9214
2014-11-23 17:39:17 -08:00
Nicholas Nethercote
e439477d51 Bug 1094552 (part 1) - DMD: rename mSampled field. r=mccr8.
The getter is called IsSampled(), so the field should match that.

--HG--
extra : rebase_source : 074c748eff909faee51bc03888b0c7f328bff82e
2014-11-18 19:11:36 -08:00
Emanuel Hoogeveen
ed8e559656 Bug 1100485 - Lock chunks during double purging to avoid racing with allocation. r=glandium 2014-11-19 09:34:00 +01:00
Mike Hommey
f229231ac3 Bug 1098967 - Use native Win32 APIs to append to the LogAlloc output. r=nfroyd
Because it turns out that the POSIX API the CRT exposes doesn't do O_APPEND
in a sane manner.
2014-11-19 09:46:49 +09:00
Mike Hommey
370d34075b Bug 1087245 part 2 - Register the MALLOC_LOG file handle from LogAlloc to poison IO interposer. r=nfroyd 2014-11-18 19:21:06 +09:00
Mike Hommey
6def88b488 Bug 1087245 part 1 - Allow replace-malloc libraries to register debug file handles to poison IO interposer. r=nfroyd 2014-11-18 19:21:06 +09:00
Mike Hommey
6dd000340e Bug 1097507 - Make libxul independent of libdmd when DMD is enabled. r=njn
This also effectively changes how DMD is enabled from requiring both
replace-malloc initialization and the DMD environment variable to
requiring only the former. The DMD environment variable can still be
used to specify options, but not to disable entirely.

This however doesn't touch all the parts that do enable DMD by setting
the DMD environment variable to 1, so the code to handle this value
is kept.
2014-11-18 19:21:06 +09:00
Mike Hommey
20af13d357 Bug 818922 - Add bidirectional method calls with replace-malloc library. r=njn 2014-11-18 19:21:06 +09:00
Emanuel Hoogeveen
5fd0d631a7 Bug 1073662 - Part 7: Enable limited chunk recycling on all platforms. r=glandium 2014-11-13 22:56:00 +01:00
Emanuel Hoogeveen
ed41e3bac7 Bug 1073662 - Part 6: Add JEMALLOC_RECYCLE, a mode that keeps a limited amount of chunks alive. r=glandium 2014-11-13 22:55:00 +01:00
Emanuel Hoogeveen
a69449cf56 Bug 1073662 - Part 5: Hook the chunk recycle code up to JEMALLOC_MUNMAP and make it safe for use with MALLOC_DECOMMIT and MALLOC_DOUBLE_PURGE. r=glandium 2014-11-13 22:52:00 +01:00
Emanuel Hoogeveen
6672a937fa Bug 1073662 - Part 4: Import chunk recycling code from jemalloc3. r=glandium 2014-11-01 12:00:00 +01:00
Emanuel Hoogeveen
eb08d111e3 Bug 1073662 - Part 3: Make all chunk-sized and larger allocations go through chunk_alloc. r=glandium 2014-09-26 13:29:00 +02:00
Emanuel Hoogeveen
fd85622415 Bug 1073662 - Part 2: Always use the jemalloc3 allocation logic and remove the old logic. r=glandium 2014-09-26 13:27:00 +02:00
Emanuel Hoogeveen
995dd724ca Bug 1073662 - Part 1: Remove support for the unused MALLOC_PAGEFILE. r=glandium 2014-09-26 13:27:00 +02:00
Mike Hommey
893ec4e38a Bug 1097506 - Pass a JSONWriteFunc to dmd::AnalyzeReports instead of a JSONWriter. r=njn
The interesting feature JSONWriteFunc has, contrary to JSONWriter, is that it
only has virtual methods, which makes it a better candidate to be passed
around between libraries not linked against each other.

This will allow to make dmd and libxul independent from each other.
2014-11-13 09:24:28 +09:00
Guilherme Goncalves
f83cf443de Bug 762448 - Disable tcache in jemalloc3. r=glandium 2014-10-23 02:36:00 -04:00
Guilherme Goncalves
1ac930a824 Bug 1093174 - Properly compute the total size for calloc() calls. r=glandium 2014-11-03 09:01:00 -05:00
Guilherme Goncalves
ffa63d2c35 Bug 1090591 - Fix test_dmd.js on jemalloc3 builds. r=njn 2014-10-28 16:13:00 -04:00
Mike Hommey
bc56e8bd32 Fixup for bug 1077148: SmokeDMD needs mozglue linkage. r=me 2014-10-30 16:33:30 +09:00
Mike Hommey
21ec48314e Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.

Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.

Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09:00
Nicholas Nethercote
69e515a5d7 Bug 1085727 (part 3, attempt 2) - Print dmd.py's invocation at the top of its output. r=mccr8. 2014-10-20 17:45:58 -07:00
Nicholas Nethercote
24309b9648 Bug 1085727 (part 2, attempt 2) - Remove dmd.py's -b option and make its behaviour the default. r=mccr8. 2014-10-20 17:45:45 -07:00
Nicholas Nethercote
3219c5a61d Bug 1085727 (part 1, attempt 2) - DMD: make some very short functions one-liners. r=mccr8. 2014-10-20 17:45:09 -07:00
Nicholas Nethercote
cf9da049d8 Bug 1014343 (attempt 2) - Add diff support to dmd.py. r=mccr8. 2014-10-16 19:06:45 -07:00
Nicholas Nethercote
392f0b2c94 Bug 1076446 (attempt 2) - Make the DMD test work on Windows. r=glandium. 2014-10-09 19:28:33 -07:00
Andrew McCreight
0edd873eed Bug 1082128 - Make id to string conversion in DMD use a class. r=njn 2014-10-24 13:44:33 -07:00
Carsten "Tomcat" Book
c12cfdc741 Backed out changeset 835fbe63da4a (bug 1076446) for perma failure in 10.8 mozilla-inbound debug test xpcshell 2014-10-24 12:32:38 +02:00
Carsten "Tomcat" Book
bcb584afa7 Backed out changeset 94c5d968e7e8 (bug 1014343) 2014-10-24 12:32:05 +02:00
Carsten "Tomcat" Book
5984fec600 Backed out changeset 450c187cbc1b (bug 1085727) 2014-10-24 12:32:03 +02:00
Carsten "Tomcat" Book
e9928211b7 Backed out changeset 2cfce41bed5c (bug 1085727) 2014-10-24 12:32:00 +02:00
Carsten "Tomcat" Book
c2383c7619 Backed out changeset 1bb832d0c539 (bug 1085727) 2014-10-24 12:31:51 +02:00