Commit Graph

102 Commits

Author SHA1 Message Date
Nicholas Nethercote
470fa3e830 Bug 1232219 (part 3) - Fix remaining -Wunused warnings. r=glandium. 2015-12-16 22:57:51 -08:00
Jan Beich
76d627ed5a Bug 1229395 - Part 2 - Rely on MALLOC_H to provide function prototypes for MOZ_NATIVE_JEMALLOC. r=glandium 2015-12-01 16:54:44 +00:00
Jan Beich
7053df31b9 Bug 1229395 - Part 1 - Unbreak MOZ_NATIVE_JEMALLOC after bug 1141079. r=glandium 2015-12-01 16:39:33 +00:00
Mike Hommey
405622a83e Bug 1221453 - Use ObjDirPaths for GENERATED_INCLUDES and merge with LOCAL_INCLUDES. r=gps 2015-11-06 09:59:21 +09:00
Mike Hommey
3ef8be4fa4 Bug 1203840 - Trigger dirty pages purge after CC. r=njn,r=smaug,r=mccr8
Jemalloc 4 purges dirty pages regularly during free() when the ratio of dirty
pages compared to active pages is higher than 1 << lg_dirty_mult.  We set
lg_dirty_mult in jemalloc_config to limit RSS usage, but it also has an impact
on performance.

So instead of enforcing a high ratio to force more pages being purged, we keep
jemalloc's default ratio of 8, and force a regular purge of all dirty pages,
after cycle collection.

Keeping jemalloc's default ratio avoids cycle-collection-triggered purge to
have to go through really all dirty pages when there are a lot, in which case
the normal jemalloc purge during free() will already have kicked in. It also
takes care of everything that doesn't run the cycle collector still having
a level of purge, like plugins in the plugin-container.

At the same time, since jemalloc_purge_freed_pages does nothing with jemalloc 4,
repurpose the MEMORY_FREE_PURGED_PAGES_MS telemetry probe to track the time
spent in this cycle-collector-triggered purge.
2015-09-20 17:43:43 +09:00
David Major
71d9efb917 Bug 1174250: Allow the CommitHook to fail without crashing. r=glandium 2015-09-15 13:53:38 -04:00
Mike Hommey
c35de69eb6 Bug 1202523 - Use the default chunk size with jemalloc 4. r=njn 2015-09-08 13:10:22 +09:00
Mike Hommey
eab3f37f73 Bug 1201792 - s/MOZ_JEMALLOC3/MOZ_JEMALLOC4/. r=njn 2015-09-04 15:15:47 +09:00
Mike Hommey
fa1b93476f Bug 1141079 - Setup custom jemalloc chunk hooks to keep RSS usage low. r=njn 2015-09-04 14:35:54 +09:00
Mike Hommey
7c905bcc2e Bug 1141079 - Make jemalloc_config.c a C++ source file. r=ted 2015-09-04 14:35:54 +09:00
Jan Beich
0061505ccb Bug 1201462 - Don't count arena allocated metadata once per bin. r=glandium 2015-09-04 14:35:52 +09:00
Nicholas Nethercote
69d088e45f Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.
2015-08-27 20:44:53 -07:00
Chris Peterson
cd0fd3466a Bug 1198124 - Enable -Wshadow in directories that have no -Wshadow warnings. r=glandium 2015-08-25 09:14:38 -07:00
Guilherme Goncalves
2a9634fd42 Bug 1125514 - Use jemalloc's metadata statistics to compute bookkeeping. r=glandium 2015-08-20 10:05:44 +09:00
Birunthan Mohanathas
47ed3a3675 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Mike Hommey
c03c765c57 Bug 1168719 - Generic replace-malloc library. r=njn 2015-06-05 10:40:58 +09:00
Mike Hommey
a186075cb0 Bug 1043692 - Move DIST_INSTALL to moz.build. r=gps 2015-05-12 07:55:22 +09:00
Paul Rouget
197b5a1ba4 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
Mike Hommey
0e0adce653 Bug 762449 - Fix "result of 32-bit shift implicitly converted to 64 bits" on win64. r=njn 2015-03-02 07:35:28 +09:00
Mike Hommey
dac0d3a532 Bug 1120272 - Expose _aligned_alloc and _aligned_free from mozglue. r=njn 2015-01-20 13:10:00 +09:00
Masatoshi Kimura
40a556102e Bug 1120062 - Part 1: Remove most Nullptr.h includes. r=waldo 2015-01-11 11:34:52 +09:00
Brad Lassey
5d345084ed bug 1083116 - build fails: malloc_decls.h conflicting types for 'malloc_usable_size' r=glandium 2015-01-06 19:58:36 -05:00
Guilherme Goncalves
ce86fedce6 Bug 899126 - Part 2 - Measure bookkeeping in jemalloc3. r=glandium. 2014-12-29 13:42:14 -08:00
Jan Beich
a0781ee659 Bug 1115078 - Unbreak MOZ_JEMALLOC3 build on FreeBSD after bug 899126. r=glandium 2014-12-23 12:32:00 -05:00
Guilherme Goncalves
2baf57431e Bug 1110514 - Use arena.<i>.purge to free jemalloc3's dirty pages. r=glandium 2014-12-23 02:41:00 -05:00
Guilherme Goncalves
1ef34b3011 Bug 1108045 - Junk memory with jemalloc3. r=glandium 2014-12-23 07:44:00 -05:00
Guilherme Goncalves
7c82da21bf 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
9fa4e54199 Bug 762448 - Deduct bin_unused from waste in jemalloc3's stats. r=glandium 2014-11-12 13:00:00 -05:00
Ryan VanderMeulen
ff62067274 Merge m-c to inbound. a=merge 2014-12-23 13:18:02 -05:00
Vladimir Vukicevic
1c9318b3cd 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
2295134076 Bug 899126 - Part 1: Implement bin_unused for jemalloc3. r=glandium 2014-12-19 09:15:00 -05:00
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
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
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
Guilherme Goncalves
f83cf443de Bug 762448 - Disable tcache in jemalloc3. r=glandium 2014-10-23 02:36:00 -04: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
Mike Hommey
bfbc5ed6e3 Bug 1083686 part 0 - Don't set MOZ_MEMORY_API to static for OSX in replace_malloc.c. r=njn
It appears to be an unnecessary optimization, since the compiler is still inlining
the functions when they're not marked static. OTOH, following patches will require
the _impl functions not to be static.
2014-10-24 13:08:01 +09:00
Guilherme Goncalves
85d38b4e9c Bug 1082199 - Recompute stats in jemalloc_stats when using jemalloc3. r=glandium 2014-10-17 15:55:00 +02:00
Mike Hommey
bf80a113ab Bug 1077366 - Remove most symbol wrapping from Android builds. r=nfroyd
Since essentially everything is linked to libmozglue and libmozglue takes
precedence in symbol resolution in our dynamic linker, there is no need
to wrap most symbols. PR_GetEnv/PR_SetEnv still needs wrapping because
there's no other way to actually wrap the calls from NSPR itself and NSS,
as well as the symbols wrapped because our dynamic linker can't find them
in system libraries on some devices because they're weak.
2014-10-14 07:17:13 +09:00
Mike Hommey
8fd95ad480 Bug 1041941 - Use templates for programs, simple programs, libraries and C++ unit tests. r=gps 2014-09-03 14:10:54 +09:00
Mike Hommey
5659a611dd Bug 1036894 part 8 - Move most in-tree library linkage information to moz.build, as USE_LIBS. r=gps 2014-07-23 13:30:52 +09:00
Mike Hommey
bc97b68005 Bug 1036894 part 1 - Move MAKE_FRAMEWORK, SDK_LIBRARY, SHARED_LIBRARY_NAME and STATIC_LIBRARY_NAME to moz.build. r=gps
At the same time, make the Library data more useful in the build frontend.
2014-07-23 13:29:09 +09:00
Chris Peterson
b9de01c141 Bug 1033188 - #include <stdlib.h> for getenv() function declaration. r=glandium 2014-07-01 18:49:52 -07:00
Mike Hommey
38fd9e1317 Bug 1019881 - Ensure the default purgeable zone is after the default zone on OS X. rs=njn 2014-06-11 11:07:27 +09:00
Jan Beich
c0e1b525ed Bug 1015602 - Populate chunksize/bin_unused for MOZ_JEMALLOC3 as they're now used after bug 1006769. r=erahm 2014-05-24 06:41:00 -04:00
Thomas Zimmermann
2ac234407a Bug 979887: Fix GCC warning about undeclared function |vsnprintf|, r=glandium 2014-03-06 11:20:00 +01:00
Thomas Zimmermann
1a335a7c9c 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
Ehsan Akhgari
444a26ed8e Bug 976896 - Port STL_FLAGS to moz.build; r=mshal 2014-03-04 19:39:06 -05:00