Commit Graph

72 Commits

Author SHA1 Message Date
Emanuel Hoogeveen
518860841b Bug 1338574 - Part 8: Use MOZ_ASSERT and MOZ_CRASH_UNSAFE_OOL in mozjemalloc. r=glandium 2017-02-21 18:02:07 +01:00
Emanuel Hoogeveen
8738d9d6d4 Bug 1339441 - Take the arena lock earlier in arena_dalloc(). r=glandium 2017-02-15 09:48:00 -05:00
Mike Hommey
51eeddedc2 Bug 1332508 - Reinitialize allocator mutexes in fork() child processes. r=njn
Adapted from
4e2e3dd9cf
and
d9f7b2a430

As per the latter commit, it would seem unlocking, in fork() child
processes, mutexes that were locked in the parent process is not really
well supported on OSX 10.12. The addition of the zone_reinit_lock
function in 10.12 supports this idea.
2017-01-20 10:06:41 +09:00
Mike Hommey
7a3f93d348 Bug 1286613 - Use the same zone allocator implementation as replace-malloc for mozjemalloc. r=njn
We have been using a different zone allocator between mozjemalloc and
replace-malloc for a long time. Jemalloc 4 uses the same as
replace-malloc, albeit as part of the jemalloc upstream code base.

We've been bitten many times in the past with Apple changes breaking the
zone allocator, and each time we've had to make changes to the three
instances, although two of them are similar and the changes there are
straightforward.

It also turns out that the way the mozjemalloc zone allocator is set up,
when a new version of OSX appears with a new version of the system zone
allocator, Firefox ends up using the system allocator, because the zone
allocator version is not supported.

So, we use the same zone allocator for both replace-malloc and
mozjemalloc, making everything on par with jemalloc 4.
2017-01-18 11:45:45 +09:00
Mike Hommey
a1e25cd0ab Bug 1286613 - Properly call mozjemalloc pre/post fork hooks on OSX when replace-malloc is enabled. r=njn
Somehow, we never called those hooks when replace-malloc is enabled. I'd
expect this to cause random deadlocks when forking, and I'm surprised
this hasn't surfaced. Maybe it actually causes some intermittent oranges
on automation, who knows.

This also brings consistency with what is done for jemalloc 4, and with
the mozjemalloc implementation, too, that we're going to replace with
this one in a subsequent changeset.
2017-01-19 09:37:22 +09:00
John Paul Adrian Glaubitz
0928c08f07 Bug 1275204 - mozjemalloc: Use the JS arm64 allocator on Linux/sparc64. r=glandium 2017-01-11 16:09:39 +09:00
John Paul Adrian Glaubitz
7e87363436 Bug 1275204 - mozjemalloc: Use better pre-processor defines for sparc64. r=glandium 2017-01-11 16:05:53 +09:00
Mike Hommey
cef534de1e Bug 1311039 - Properly detect the default malloc zone on OSX 10.12. r=njn 2016-11-03 10:02:06 +09:00
Cameron McCormack
aa137c3dd8 Bug 1291356 - Enable multiple jemalloc arenas for MOZ_STYLO builds. r=me 2016-08-26 20:21:48 +09:00
Emanuel Hoogeveen
363f9560d9 Bug 1294732 - Back out all of bug 1271165 as it has served its purpose. r=glandium 2016-08-23 08:45:00 -04:00
Emanuel Hoogeveen
fb486d1019 Bug 1271165 - Part 6: Change the new functions to MFBT_API to export them on OSX. r=jandem 2016-08-16 07:12:00 -04:00
Emanuel Hoogeveen
c25a02ae46 Bug 1271165 - Part 4: Enable the new functionality in mozjemalloc. r=ehoogeveen 2016-08-12 07:38:00 -04:00
Emanuel Hoogeveen
dfc445c086 Bug 1271165 - Part 1: Add protected allocation functions and supporting infrastructure to mozjemalloc. r=ehoogeveen 2016-08-12 07:36:00 -04:00
Emanuel Hoogeveen
68a1962fdb Bug 1271165 - Part 0: Strip trailing blanks from mozjemalloc. r=ehoogeveen 2016-08-12 07:36:00 -04:00
Makoto Kato
ea9e7f9fda Bug 1091515 - Don't set 64KB page size on aarch64. r=glandium
Linux/aarch64 supports vairous page size configuration.

(From https://www.kernel.org/doc/Documentation/arm64/memory.txt)
- 4KB + 3 levels
- 4KB + 4 levels
- 64KB + 2 leves

So we shouldn't set fixed 64KB page size on aarch64.


MozReview-Commit-ID: 8IdwBMUW4me
2016-04-05 18:54:42 +09:00
Eric Rahm
5b381a039d Bug 1181142 - Part 1: Make the minimum allocation size word sized on all platforms. r=glandium
Bug 691003 made the minimum allocation size word sized for Linux and OS X, we
now need to do a similar change on Windows as well. For Windows the requirement
is 8-bytes on 32-bit and 16-bytes on 64-bit.
2015-07-07 17:36:31 -07:00
Sebastian Hengst
e77c11387d Backed out changeset 4593c32d5b81 (bug 1181142) for making XPCshell test_dmd.js fail on Windows 8 x64 debug. r=backout 2016-03-25 21:53:30 +01:00
Eric Rahm
14917d55a4 Bug 1181142 - Part 1: Make the minimum allocation size word sized on all platforms. r=glandium
Bug 691003 made the minimum allocation size word sized for Linux and OS X, we
now need to do a similar change on Windows as well. For Windows the requirement
is 8-bytes on 32-bit and 16-bytes on 64-bit.
2015-07-07 17:36:31 -07:00
Nicholas Nethercote
8029db49e2 Bug 1258257 - Reduce mozjemalloc page cache size from 4 MiB to 1 MiB. r=glandium.
This reduces memory usage by up to 3 MiB per process.

MozReview-Commit-ID: Gfs9PIJM4br
2016-03-24 16:38:45 +11:00
Nicholas Nethercote
5c344ce47d Bug 1232219 (part 3) - Fix remaining -Wunused warnings. r=glandium. 2015-12-16 22:57:51 -08:00
Chris Peterson
f3188bff13 Bug 1226907 - Part 2: Fix warnings in mozjemalloc and remove ALLOW_COMPILER_WARNINGS. r=glandium 2015-11-15 13:21:56 -08:00
Chris Peterson
afcf863026 Bug 1226907 - Part 1: Check _write and strerror_r return values in mozjemalloc. r=njn 2015-11-27 13:24:56 -08:00
Nicholas Nethercote
0c0cfb9099 Bug 1044077 - Tweak some jemalloc constants. r=glandium. 2015-07-14 20:35:37 -07:00
Mike Hommey
6b3503cbd1 Bug 1137580 - Do not use system realloc in mozjemalloc-exposed _recalloc. r=njn 2015-08-07 16:27:28 +09:00
Mike Hommey
68cac8e71f Bug 1172632 - Don't guess malloc_usable_size type of argument based on ANDROID_VERSION in mozjemalloc, but use the result of the configure test instead. r=njn 2015-06-10 10:49:21 +09:00
Leila Hadji
09307be8af Bug 498166 - malloc_init deadlock due to pthread_atfork. r=glandium 2015-05-22 06:01:00 -04:00
Paul Rouget
816ab48d3e Bug 1156628 - Don't limit the number of unused dirty pages kept by jemalloc on B2G desktop. r=gsvelto, r=glandium 2015-04-24 03:58:00 -04: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
Emanuel Hoogeveen
bc65c94130 Bug 1073662 - Part 7: Enable limited chunk recycling on all platforms. r=glandium 2014-11-13 22:56:00 +01:00
Emanuel Hoogeveen
4f2ab26056 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
e10498e87c 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
6aba9c84d6 Bug 1073662 - Part 4: Import chunk recycling code from jemalloc3. r=glandium 2014-11-01 12:00:00 +01:00
Emanuel Hoogeveen
1b8f5f7a27 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
3818b2f2db 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
dd6ffeef35 Bug 1073662 - Part 1: Remove support for the unused MALLOC_PAGEFILE. r=glandium 2014-09-26 13:27:00 +02:00
Nicholas Nethercote
f5fb800410 Bug 1057754 (follow-up) - Allow Valgrind + jemalloc to be combined, because it makes sense when running Cachegrind. r=me. 2014-08-25 20:38:29 -07:00
Nicholas Nethercote
fe2909fe89 Bug 1057754 - Remove the bogus Valgrind annotations from mozjemalloc. r=glandium. 2014-08-25 16:59:43 -07:00
Makoto Kato
fdc5bb3beb Bug 1030899 - Remove issetugid usage on jemalloc. r=glandium 2014-07-08 17:52:09 +09:00
Ehsan Akhgari
c2b244ea06 Bug 1028684 - Fix the signature of _msize in jemalloc.c; r=glandium
This function accepts a void* argument, not a const void*.
2014-06-24 07:20:22 -07:00
Jed Davis
3f4e2f50f4 Bug 1011350 - Use TaggedAnonymousMemory to distinguish our various mmap call sites. r=njn
We can probably get more granular information than this, given that we
can re-tag memory after the initial mapping, or tag subregions of an
individual mmap() call differently.  But this is a start.
2014-06-17 17:55:00 +02:00
Ehsan Akhgari
a0ac65b3dd Bug 1025906 - Include intrin.h in jemalloc.c; r=glandium
This fixes a linking error with clang-cl.
2014-06-16 22:34:26 -04:00
Eric Rahm
3652c96cf7 Bug 1006769 - Part 2: Backport jemalloc3 run_size_calc logic. r=glandium 2014-05-21 17:34:07 -07:00
Eric Rahm
87ac050c65 Bug 1006769 - Part 1: Improve heap-overhead memory reporting. r=njn 2014-05-21 17:34:06 -07:00
Nicholas Nethercote
db8f5b5dac Bug 1013014 (attempt 2) - Disable Trace Malloc on TBPL debug builds. r=glandium. 2014-05-19 18:16:42 -07:00
Mike Hommey
c7adcb562a Bug 984447 - Properly handle forks in mozjemalloc after bug 694896. r=smichaud 2014-03-29 16:53:49 +09:00
Thomas Zimmermann
8244b8520b Bug 979887: Fix GCC warnings about inline variable declarations, r=glandium
Some code is compiled in C90 mode, where inline declarations of
variables are not allowed.
2014-03-06 11:19:57 +01:00
David Major
a096d834e3 Bug 860254 - Part 4: Enable poisoning. r=glandium 2014-02-13 20:11:15 -05:00
David Major
d3466fe0ae Bug 860254 - Part 2: Split junk settings into opt_junk (allocate) versus opt_poison (deallocate). r=glandium 2014-01-14 11:56:18 -08:00
David Major
389372afc7 Bug 860254 - Part 1: #define MALLOC_FILL but keep the options const-false. r=glandium 2014-02-13 20:10:35 -05:00
Marcin Juszkiewicz
2f2928255f Bug 963028 - AArch64 support for jemalloc. r=froydnj 2014-01-23 16:34:31 -05:00