aboutsummaryrefslogtreecommitdiff
path: root/www/firefox/files/patch-bug899126
diff options
context:
space:
mode:
Diffstat (limited to 'www/firefox/files/patch-bug899126')
-rw-r--r--www/firefox/files/patch-bug89912698
1 files changed, 0 insertions, 98 deletions
diff --git a/www/firefox/files/patch-bug899126 b/www/firefox/files/patch-bug899126
deleted file mode 100644
index 70a254c701b5..000000000000
--- a/www/firefox/files/patch-bug899126
+++ /dev/null
@@ -1,98 +0,0 @@
-commit 0f63381
-Author: Guilherme Goncalves <guilherme.p.gonc@gmail.com>
-Date: Tue Nov 18 14:03:00 2014 -0800
-
- Bug 899126 - Part 1 - Implement bin_unused for jemalloc3. r=glandium
----
- memory/build/mozjemalloc_compat.c | 57 ++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 56 insertions(+), 1 deletion(-)
-
-diff --git memory/build/mozjemalloc_compat.c memory/build/mozjemalloc_compat.c
-index 70265a7..0a9b21a 100644
---- memory/build/mozjemalloc_compat.c
-+++ memory/build/mozjemalloc_compat.c
-@@ -12,6 +12,8 @@
- #include "jemalloc_types.h"
- #include "mozilla/Types.h"
-
-+#include <stdbool.h>
-+
- #if defined(MOZ_NATIVE_JEMALLOC)
-
- MOZ_IMPORT_API int
-@@ -47,6 +49,16 @@ je_(nallocm)(size_t *rsize, size_t size, int flags);
- je_(mallctlbymib)(mib, miblen, &v, &sz, NULL, 0); \
- } while (0)
-
-+#define CTL_IJ_GET(n, v, i, j) do { \
-+ size_t mib[6]; \
-+ size_t miblen = sizeof(mib) / sizeof(mib[0]); \
-+ size_t sz = sizeof(v); \
-+ je_(mallctlnametomib)(n, mib, &miblen); \
-+ mib[2] = i; \
-+ mib[4] = j; \
-+ je_(mallctlbymib)(mib, miblen, &v, &sz, NULL, 0); \
-+} while (0)
-+
- MOZ_MEMORY_API size_t
- malloc_good_size_impl(size_t size)
- {
-@@ -61,6 +73,48 @@ malloc_good_size_impl(size_t size)
- return size;
- }
-
-+static size_t
-+compute_bin_unused(unsigned int narenas)
-+{
-+ size_t bin_unused = 0;
-+
-+ uint32_t nregs; // number of regions per run in the j-th bin
-+ size_t reg_size; // size of regions served by the j-th bin
-+ size_t curruns; // number of runs belonging to a bin
-+ size_t curregs; // number of allocated regions in a bin
-+
-+ unsigned int nbins; // number of bins per arena
-+ unsigned int i, j;
-+
-+ // curruns and curregs are not defined for uninitialized arenas,
-+ // so we skip them when computing bin_unused. However, initialized
-+ // arenas are not guaranteed to be sequential, so we must test each
-+ // one when iterating below.
-+ bool initialized[100]; // should be narenas, but MSVC doesn't have VLAs
-+ size_t isz = sizeof(initialized) / sizeof(initialized[0]);
-+
-+ je_(mallctl)("arenas.initialized", initialized, &isz, NULL, 0);
-+ CTL_GET("arenas.nbins", nbins);
-+
-+ for (j = 0; j < nbins; j++) {
-+ CTL_I_GET("arenas.bin.0.nregs", nregs, j);
-+ CTL_I_GET("arenas.bin.0.size", reg_size, j);
-+
-+ for (i = 0; i < narenas; i++) {
-+ if (!initialized[i]) {
-+ continue;
-+ }
-+
-+ CTL_IJ_GET("stats.arenas.0.bins.0.curruns", curruns, i, j);
-+ CTL_IJ_GET("stats.arenas.0.bins.0.curregs", curregs, i, j);
-+
-+ bin_unused += (nregs * curruns - curregs) * reg_size;
-+ }
-+ }
-+
-+ return bin_unused;
-+}
-+
- MOZ_JEMALLOC_API void
- jemalloc_stats_impl(jemalloc_stats_t *stats)
- {
-@@ -93,7 +147,8 @@ jemalloc_stats_impl(jemalloc_stats_t *stats)
- // We could get this value out of base.c::base_pages, but that really should
- // be an upstream change, so don't worry about it for now.
- stats->bookkeeping = 0;
-- stats->bin_unused = 0;
-+
-+ stats->bin_unused = compute_bin_unused(narenas);
- }
-
- MOZ_JEMALLOC_API void