searching for reviewer(njn)
ee9d4052e949: Bug 1402283 - Enforce arena matching on moz_arena_{realloc,free}. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 08 Nov 2017 17:43:47 +0900 - rev 441947
Push 8134 by ryanvm@gmail.com at 2017-11-10 21:18 +0000
Bug 1402283 - Enforce arena matching on moz_arena_{realloc,free}. r=njn This enforces the API contract as described in memory/build/malloc_decls.h.
a82bf86d86fd: Bug 1402283 - Associate an arena to each huge allocation. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Thu, 09 Nov 2017 13:53:27 +0900 - rev 441946
Push 8134 by ryanvm@gmail.com at 2017-11-10 21:18 +0000
Bug 1402283 - Associate an arena to each huge allocation. r=njn Currently, huge allocations are completely independent from arenas. But in order to ensure that e.g. moz_arena_realloc can't reallocate huge allocations from another arena, we need to track which arena was responsible for the huge allocation. We do that in the corresponding extent_node_t.
6e0e82c6b316: Bug 1402283 - Replace isalloc/isalloc_validate with static methods of a new AllocInfo class. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Thu, 09 Nov 2017 13:49:33 +0900 - rev 441945
Push 8134 by ryanvm@gmail.com at 2017-11-10 21:18 +0000
Bug 1402283 - Replace isalloc/isalloc_validate with static methods of a new AllocInfo class. r=njn Both functions do essentially the same thing, one having more validation than the other. We can use a template with a boolean parameter to avoid the duplication. Furthermore, we're soon going to require, in some cases, more information than just the size of the allocation, so we wrap their result in a helper class that gives information about an active allocation.
3f44c449e280: Bug 1402283 - Make arena_ralloc use the same arena as the original pointer when none is provided. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Thu, 09 Nov 2017 09:51:10 +0900 - rev 441944
Push 8134 by ryanvm@gmail.com at 2017-11-10 21:18 +0000
Bug 1402283 - Make arena_ralloc use the same arena as the original pointer when none is provided. r=njn When using plain realloc() on a pointer that was allocated with moz_arena_malloc, we want the resulting pointer to still belong to the same arena.
e2df7f0bf182: Bug 1402283 - Rename extent_node_t fields. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 08 Nov 2017 17:20:20 +0900 - rev 441943
Push 8134 by ryanvm@gmail.com at 2017-11-10 21:18 +0000
Bug 1402283 - Rename extent_node_t fields. r=njn
9bbac53ac792: Bug 1403421 - Support mips64-linux performance. r=njn
qiaopengcheng <qiaopengcheng-hf@loongson.cn> - Thu, 28 Sep 2017 18:23:00 -0400 - rev 441801
Push 8134 by ryanvm@gmail.com at 2017-11-10 21:18 +0000
Bug 1403421 - Support mips64-linux performance. r=njn
bfa36a25eaf6: Bug 1415454 - Replace log2 lookup table with FloorLog2. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 08 Nov 2017 16:20:40 +0900 - rev 441716
Push 8133 by ryanvm@gmail.com at 2017-11-09 23:33 +0000
Bug 1415454 - Replace log2 lookup table with FloorLog2. r=njn FloorLog2 expands to, essentially, a compiler builtin/intrinsic, that, in turn, expands to a single machine instruction on tier 1 and other platforms. On platforms where that's not the case, we can expect the compiler to generate fast code anyways. So overall, this is all better than manually using a log2 lookup table. Also replace a manual power-of-two check with mozilla::IsPowerOfTwo, which does the same test.
b8acdda17818: Bug 1415454 - Remove the unused arena_bin_t* argument to arena_t::AllocRun. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Fri, 03 Nov 2017 15:54:20 +0900 - rev 441715
Push 8133 by ryanvm@gmail.com at 2017-11-09 23:33 +0000
Bug 1415454 - Remove the unused arena_bin_t* argument to arena_t::AllocRun. r=njn
f64defe0d11e: Bug 1415454 - Inline MallocBinEasy and MallocBinHard. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Fri, 03 Nov 2017 15:48:40 +0900 - rev 441714
Push 8133 by ryanvm@gmail.com at 2017-11-09 23:33 +0000
Bug 1415454 - Inline MallocBinEasy and MallocBinHard. r=njn They are both only used once, are trivial wrappers, and even repeat the same assertions.
a4392df95024: Bug 1414168 - Rename arena_run_t fields. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Fri, 03 Nov 2017 15:23:44 +0900 - rev 441712
Push 8133 by ryanvm@gmail.com at 2017-11-09 23:33 +0000
Bug 1414168 - Rename arena_run_t fields. r=njn
182b840c8956: Bug 1414168 - Move bin initialization to a method of the arena_bin_t class. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 08 Nov 2017 15:53:24 +0900 - rev 441711
Push 8133 by ryanvm@gmail.com at 2017-11-09 23:33 +0000
Bug 1414168 - Move bin initialization to a method of the arena_bin_t class. r=njn
11bc33786fd3: Bug 1414168 - Change how run sizes are calculated. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 08 Nov 2017 14:04:10 +0900 - rev 441710
Push 8133 by ryanvm@gmail.com at 2017-11-09 23:33 +0000
Bug 1414168 - Change how run sizes are calculated. r=njn There are multiple flaws to the current code: - The loop calculating the right parameters for a given run size is repeated. - The loop trying different run sizes doesn't actually work to fulfil the overhead constraint: while it stops when the constraint is fulfilled, the values that are kept are those from the previous iteration, which may well be well over the constraint. In practice, the latter resulted in a few surprising results: - most size classes had an overhead slightly over the constraint (1.562%), which, while not terribly bad, doesn't match the set expectations. - some size classes ended up with relatively good overheads only because of the additional constraint that run sizes had to be larger than the run size of smaller size classes. Without this constraint, some size classes would end up with overheads well over 2% just because that happens to be the last overhead value before reaching below the 1.5% constraint. Furthermore, for higher-level fragmentation concerns, smaller run sizes are better than larger run sizes, and in many cases, smaller run sizes can yield the same (or even sometimes, better) overhead as larger run sizes. For example, the current code choses 8KiB for runs of size 112, but using 4KiB runs would actually yield the same number of regions, and the same overhead. We thus change the calculation to: - not force runs to be smaller than those of smaller classes. - avoid the code repetition. - actually enforce its overhead constraint, but make it 1.6%. - for especially small size classes, relax the overhead constraint to 2.4%. This leads to an uneven set of run sizes: size class before after 4 4 KiB 4 KiB 8 4 KiB 4 KiB 16 4 KiB 4 KiB 32 4 KiB 4 KiB 48 4 KiB 4 KiB 64 4 KiB 4 KiB 80 4 KiB 4 KiB 96 4 KiB 4 KiB 112 8 KiB 4 KiB 128 8 KiB 8 KiB 144 8 KiB 4 KiB 160 8 KiB 8 KiB 176 8 KiB 4 KiB 192 12 KiB 4 KiB 208 12 KiB 8 KiB 224 12 KiB 4 KiB 240 12 KiB 4 KiB 256 16 KiB 16 KiB 272 16 KiB 4 KiB 288 16 KiB 4 KiB 304 16 KiB 12 KiB 320 20 KiB 12 KiB 336 20 KiB 4 KiB 352 20 KiB 8 KiB 368 20 KiB 4 KiB 384 24 KiB 8 KiB 400 24 KiB 20 KiB 416 24 KiB 16 KiB 432 24 KiB 12 KiB 448 28 KiB 4 KiB 464 28 KiB 16 KiB 480 28 KiB 8 KiB 496 28 KiB 20 KiB 512 32 KiB 32 KiB 1024 64 KiB 64 KiB 2048 132 KiB 128 KiB * Note: before is before this change only, not before the set of changes from this bug; before that, the run size for 96 could be 8 KiB in some configurations. In most cases, the overhead hasn't changed, with a few exceptions: - Improvements: size class before after 208 1.823% 0.977% 304 1.660% 1.042% 320 1.562% 1.042% 400 0.716% 0.391% 464 1.283% 0.879% 480 1.228% 0.391% 496 1.395% 0.703% - Regressions: 352 0.312% 1.172% 416 0.130% 0.977% 2048 1.515% 1.562% For the regressions, the values are either still well within the constraint or very close to the previous value, that I don't feel like it's worth trying to avoid them, with the risk of making things worse for other size classes.
29a122463ffc: Bug 1414168 - Base run offset calculations on the fixed header size, excluding regs_mask. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 08 Nov 2017 10:08:37 +0900 - rev 441709
Push 8133 by ryanvm@gmail.com at 2017-11-09 23:33 +0000
Bug 1414168 - Base run offset calculations on the fixed header size, excluding regs_mask. r=njn On 64-bit platforms, sizeof(arena_run_t) includes a padding at the end of the struct to align to 64-bit, since the last field, regs_mask, is 32-bit, and its offset can be a multiple of 64-bit depending on the configuration. But we're doing size calculations for a dynamically-sized regs_mask based on sizeof(arena_run_t), completely ignoring that padding. Instead, we use the offset of regs_mask as a base for the calculation. Practically speaking, this doesn't change much with the current set of values, but could affect the overheads when we squeeze run sizes more.
ef39a9dff092: Bug 1414168 - Avoid padding near the beginning of arena_run_t. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 08 Nov 2017 09:56:08 +0900 - rev 441708
Push 8133 by ryanvm@gmail.com at 2017-11-09 23:33 +0000
Bug 1414168 - Avoid padding near the beginning of arena_run_t. r=njn This makes the run header larger than necessary, which happens to make the current arena_bin_run_calc_size pick 8KiB runs for size class 96 when MOZ_DIAGNOSTIC_ASSERT_ENABLED is set. This change makes it pick 4KiB runs, making MOZ_DIAGNOSTIC_ASSERT_ENABLED builds use the same set of run sizes as non-MOZ_DIAGNOSTIC_ASSERT_ENABLED builds.
076b6f406f2c: Bug 1414168 - Change and move the relaxed calculation rule for small size classes. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Tue, 07 Nov 2017 14:36:07 +0900 - rev 441707
Push 8133 by ryanvm@gmail.com at 2017-11-09 23:33 +0000
Bug 1414168 - Change and move the relaxed calculation rule for small size classes. r=njn First and foremost, the code and corresponding comment weren't in agreement on what's going on. The code checks: RUN_MAX_OVRHD * (bin->mSizeClass << 3) <= RUN_MAX_OVRHD_RELAX which is equivalent to: (bin->mSizeClass << 3) <= RUN_MAX_OVRHD_RELAX / RUN_MAX_OVRHD replacing constants: (bin->mSizeClass << 3) <= 0x1800 / 0x3d The left hand side is just bin->mSizeClass * 8, and the right hand side is about 100, so this can be roughly summarized as: bin->mSizeClass <= 12 The comment says the overhead constraint is relaxed for runs with a per-region overhead greater than RUN_MAX_OVRHD / (mSizeClass << (3+RUN_BFP)). Which, on itself, doesn't make sense, because it translates to 61 / (mSizeClass * 32768), which, even for a size class of 1 would mean less than 0.2%, and this value would be even smaller for bigger classes. The comment would make more sense with RUN_MAX_OVRHD_RELAX, but would still not match what the code was doing. So we change how the relaxed rule works, as per the comment in the new code, and make it happen after the standard run overhead constraint has been checked.
bd35bf43d67d: Bug 1414168 - Demystify the last test in the main arena_bin_run_size_calc loop. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Tue, 07 Nov 2017 08:55:37 +0900 - rev 441706
Push 8133 by ryanvm@gmail.com at 2017-11-09 23:33 +0000
Bug 1414168 - Demystify the last test in the main arena_bin_run_size_calc loop. r=njn The description above the RUN_* constant definitions talks about binary fixed point math, which is one way to look at the problem, but a clearer one is to look at it as comparing ratios in a way that doesn't use divisions. So, starting from the current expression: (try_reg0_offset << RUN_BFP) <= RUN_MAX_OVRHD * try_run_size This can be rewritten as try_reg0_offset * (1 << RUN_BFP) <= RUN_MAX_OVRHD * try_run_size Dividing both sides with ((1 << RUN_BFP) * try_run_size), and simplifying, gives us: try_reg0_offset / try_run_size <= RUN_MAX_OVRHD / (1 << RUN_BFP) Replacing the constants: try_reg0_offset / try_run_size <= 0x3d / (1 << 12) or try_reg0_offset / try_run_size <= 61 / 4096 61 / 4096 is roughly 1.5%. So what the check really intends to do is check that the overhead is below 1.5%. So we introduce a helper class and a user-defined literal that makes the test more self-descriptive, while producing identical machine code. This is a lot of code to add, but I think it's one of those cases where abstraction can help make the code clearer.
5ab2a7bd031f: Bug 1414168 - Split the condition for the main arena_bin_run_size_calc loop into pieces. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Tue, 07 Nov 2017 07:42:21 +0900 - rev 441705
Push 8133 by ryanvm@gmail.com at 2017-11-09 23:33 +0000
Bug 1414168 - Split the condition for the main arena_bin_run_size_calc loop into pieces. r=njn This is, practically speaking, a no-op, and will hopefully help make the following changes clearer.
49451ebb746c: Bug 1411552 - Improve the warning about attempting to overwrite prefs with a pref of the wrong type. r=njn
Jonathan Watt <jwatt@jwatt.org> - Wed, 11 Oct 2017 19:10:43 +0100 - rev 441528
Push 8130 by ryanvm@gmail.com at 2017-11-09 00:28 +0000
Bug 1411552 - Improve the warning about attempting to overwrite prefs with a pref of the wrong type. r=njn MozReview-Commit-ID: AAlimIWoOgQ
cdabc4808a0f: Bug 1410132 - Use a separate jemalloc arena for all SpiderMonkey malloc allocations r=njn r=nbp
Jon Coppeard <jcoppeard@mozilla.com> - Thu, 02 Nov 2017 14:51:27 +0000 - rev 441523
Push 8130 by ryanvm@gmail.com at 2017-11-09 00:28 +0000
Bug 1410132 - Use a separate jemalloc arena for all SpiderMonkey malloc allocations r=njn r=nbp
28c901411c1e: Bug 1410132 - Use a separate jemalloc arena for all SpiderMonkey malloc allocations r=njn r=nbp
Jon Coppeard <jcoppeard@mozilla.com> - Thu, 02 Nov 2017 14:51:27 +0000 - rev 441327
Push 8127 by ryanvm@gmail.com at 2017-11-07 22:38 +0000
Bug 1410132 - Use a separate jemalloc arena for all SpiderMonkey malloc allocations r=njn r=nbp
a0712da71d64: Bug 1414394 Mark write()'s in libfuzzer as Unused to silence a warning r=njn
Tom Ritter <tom@mozilla.com> - Fri, 03 Nov 2017 23:17:27 -0500 - rev 441190
Push 8127 by ryanvm@gmail.com at 2017-11-07 22:38 +0000
Bug 1414394 Mark write()'s in libfuzzer as Unused to silence a warning r=njn MozReview-Commit-ID: GbWTgrndfoa
849017ffe297: Bug 1414155 - Define AddressRadixTree node size as a size rather than a power of 2. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Fri, 03 Nov 2017 13:50:44 +0900 - rev 441026
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Define AddressRadixTree node size as a size rather than a power of 2. r=njn
c84122339c7f: Bug 1414155 - Replace constants describing size class numbers. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Fri, 03 Nov 2017 12:21:53 +0900 - rev 441025
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Replace constants describing size class numbers. r=njn
a826adc9b1c7: Bug 1414155 - Rename chunk related constants. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Fri, 03 Nov 2017 12:16:11 +0900 - rev 441024
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Rename chunk related constants. r=njn
9d00f5278383: Bug 1414155 - Rename page size related constants. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Fri, 03 Nov 2017 12:13:17 +0900 - rev 441023
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Rename page size related constants. r=njn
578f15a2e0f6: Bug 1414155 - Replace chunk size related macros and constants. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Fri, 03 Nov 2017 12:07:16 +0900 - rev 441022
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Replace chunk size related macros and constants. r=njn
9429ad8b651f: Bug 1414155 - Replace size class related macros and constants. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Fri, 03 Nov 2017 10:10:50 +0900 - rev 441021
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Replace size class related macros and constants. r=njn Hopefully, this makes things a little clearer.
5617b3050501: Bug 1414155 - Remove SIZE_INV values for QUANTUM_2POW_MIN < 4. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Fri, 03 Nov 2017 11:41:30 +0900 - rev 441020
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Remove SIZE_INV values for QUANTUM_2POW_MIN < 4. r=njn QUANTUM_2POW_MIN is exactly 4, and we are unlikely to ever make it smaller. Also turn a MOZ_ASSERT into a static_assert, because it only uses constants, and will fail if QUANTUM_2POW_MIN is lowered without touching size_invs.
f6799dfca63c: Bug 1414155 - Replace the cacheline-related macros with a constant. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 19:34:41 +0900 - rev 441019
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Replace the cacheline-related macros with a constant. r=njn
5bd88f059878: Bug 1414155 - Consolidate "constant/globals". r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 18:33:24 +0900 - rev 441018
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Consolidate "constant/globals". r=njn There is a set of "constants" that are actually globals that depend on the page size that we get at runtime, when compiling without MALLOC_STATIC_PAGESIZE, but that are actual constants when compiling with it. Their value was unfortunately duplicated. We setup a set of macros allowing to make the declarations unique.
fb8fa3f4449c: Bug 1414155 - Define pagesize_2pow in terms of pagesize, not the opposite. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 18:07:06 +0900 - rev 441017
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Define pagesize_2pow in terms of pagesize, not the opposite. r=njn At the same time, add user-defined literals to make those constants more legible.
9ee0115104a4: Bug 1414155 - Move arena_chunk_map_t and arena_chunk_t around. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 17:54:31 +0900 - rev 441016
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Move arena_chunk_map_t and arena_chunk_t around. r=njn At the moment, while they are used before their declaration, it's from a macro. It is desirable to replace the macros with C++ constants, which will require the structures being defined first.
0b3250499ed0: Bug 1414155 - Factor out size classes logic for tiny, quantum and sub-page classes. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Fri, 03 Nov 2017 08:53:34 +0900 - rev 441015
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Factor out size classes logic for tiny, quantum and sub-page classes. r=njn We create a new helper class that rounds up allocations sizes and categorizes them. Compilers are smart enough to elide what they don't need, like in malloc_good_size, they elide the code related to the class type enum.
4a93fcad5d8e: Bug 1414155 - Move a few things around. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 19:29:36 +0900 - rev 441014
Push 8123 by ryanvm@gmail.com at 2017-11-06 14:00 +0000
Bug 1414155 - Move a few things around. r=njn
fc7fdeed66bc: Bug 1410132 - Use a separate jemalloc arena for all SpiderMonkey malloc allocations r=njn r=nbp
Jon Coppeard <jcoppeard@mozilla.com> - Thu, 02 Nov 2017 14:51:27 +0000 - rev 440824
Push 8120 by ryanvm@gmail.com at 2017-11-04 17:45 +0000
Bug 1410132 - Use a separate jemalloc arena for all SpiderMonkey malloc allocations r=njn r=nbp
e6d86b7284ba: Bug 1414073 - Rename arena_bin_t fields. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Fri, 03 Nov 2017 09:26:07 +0900 - rev 440741
Push 8120 by ryanvm@gmail.com at 2017-11-04 17:45 +0000
Bug 1414073 - Rename arena_bin_t fields. r=njn At the same time, fold malloc_bin_stats_t into it.
d3a0101e3936: Bug 1410132 - Use a separate jemalloc arena for all SpiderMonkey malloc allocations r=njn r=nbp
Jon Coppeard <jcoppeard@mozilla.com> - Thu, 02 Nov 2017 14:51:27 +0000 - rev 440628
Push 8118 by ryanvm@gmail.com at 2017-11-03 00:38 +0000
Bug 1410132 - Use a separate jemalloc arena for all SpiderMonkey malloc allocations r=njn r=nbp
8f7809346a83: Bug 1413475 - Run clang-format on all files in memory/build/. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 17:20:54 +0900 - rev 440499
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1413475 - Run clang-format on all files in memory/build/. r=njn
bdf6c8f64bfa: Bug 1413475 - Change comments to use C++ style // instead of /* */ in memory/build/. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 17:15:12 +0900 - rev 440498
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1413475 - Change comments to use C++ style // instead of /* */ in memory/build/. r=njn
1823bf65f460: Bug 1413475 - Normalize license boilerplates in memory/build/. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 16:56:27 +0900 - rev 440497
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1413475 - Normalize license boilerplates in memory/build/. r=njn
d5fa1c46befc: Bug 1413475 - Replace SIZEOF_INT_2POW with LOG2(sizeof(int)). r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 16:47:59 +0900 - rev 440496
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1413475 - Replace SIZEOF_INT_2POW with LOG2(sizeof(int)). r=njn
622a6b764ea7: Bug 1413475 - Inline STRERROR_BUF in mozjemalloc.cpp. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 16:46:44 +0900 - rev 440495
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1413475 - Inline STRERROR_BUF in mozjemalloc.cpp. r=njn It is only used once.
dd8f08e3a25e: Bug 1413475 - Remove unused MAP_NOSYNC definition in mozjemalloc.cpp. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 16:45:40 +0900 - rev 440494
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1413475 - Remove unused MAP_NOSYNC definition in mozjemalloc.cpp. r=njn
567d3623e78f: Bug 1413475 - Move MALLOC_DECOMMIT definition closer to that of MALLOC_DOUBLE_PURGE. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 16:45:24 +0900 - rev 440493
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1413475 - Move MALLOC_DECOMMIT definition closer to that of MALLOC_DOUBLE_PURGE. r=njn
5d39a3d4c19b: Bug 1413475 - Reorganize #includes in mozjemalloc.cpp. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 16:10:24 +0900 - rev 440492
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1413475 - Reorganize #includes in mozjemalloc.cpp. r=njn
b16212b3d834: Bug 1413475 - Inline _CRT_SPINCOUNT in mozjemalloc.cpp. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 16:06:28 +0900 - rev 440491
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1413475 - Inline _CRT_SPINCOUNT in mozjemalloc.cpp. r=njn It is only used once.
9d00b2fff848: Bug 1413475 - Remove ssize_t definition from mozjemalloc.cpp. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Wed, 01 Nov 2017 15:51:06 +0900 - rev 440490
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1413475 - Remove ssize_t definition from mozjemalloc.cpp. r=njn The only use of ssize_t in mozjemalloc was removed in bug 1403444.
060f3a739091: Bug 1412611 Reorder member initialization to fix -Wreorder warning in widget/windows/nsLookAndFeel.cpp r=njn
Tom Ritter <tom@mozilla.com> - Sat, 28 Oct 2017 23:36:04 -0500 - rev 440365
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1412611 Reorder member initialization to fix -Wreorder warning in widget/windows/nsLookAndFeel.cpp r=njn MozReview-Commit-ID: EJp1FqllORN
8972c662b24f: Bug 1402284 - Separate arenas created from moz_arena_* functions from others. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Tue, 31 Oct 2017 07:13:39 +0900 - rev 440298
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1402284 - Separate arenas created from moz_arena_* functions from others. r=njn We introduce the notion of private arenas, separate from other arenas (main and thread-local). They are kept in a separate arena tree, and arena lookups from moz_arena_* functions only access the tree of private arenas. Iteration still goes through all arenas, private and non-private.
23acf21b5642: Bug 1402284 - Move arena tree related globals to a static singleton of a new class. r=njn
Mike Hommey <mh+mozilla@glandium.org> - Sat, 28 Oct 2017 07:13:58 +0900 - rev 440297
Push 8114 by jlorenzo@mozilla.com at 2017-11-02 16:33 +0000
Bug 1402284 - Move arena tree related globals to a static singleton of a new class. r=njn We create the ArenaCollection class to handle operations on the arena tree. Ideally, iter() would trigger locking, but the prefork/postfork code complicates things, so we leave this for later.