12141150fdbda57651a53ae2fe0edaea4891d814 |
|
16-May-2014 |
Jason Evans <je@fb.com> |
Refactor huge allocation to be managed by arenas. Refactor huge allocation to be managed by arenas (though the global red-black tree of huge allocations remains for lookup during deallocation). This is the logical conclusion of recent changes that 1) made per arena dss precedence apply to huge allocation, and 2) made it possible to replace the per arena chunk allocation/deallocation functions. Remove the top level huge stats, and replace them with per arena huge stats. Normalize function names and types to *dalloc* (some were *dealloc*). Remove the --enable-mremap option. As jemalloc currently operates, this is a performace regression for some applications, but planned work to logarithmically space huge size classes should provide similar amortized performance. The motivation for this change was that mremap-based huge reallocation forced leaky abstractions that prevented refactoring.
/external/jemalloc/src/stats.c
|
a4f124f59fa5f702231432a7e5fa45140ba81e2a |
|
09-Dec-2013 |
Jason Evans <jasone@canonware.com> |
Normalize #define whitespace. Consistently use a tab rather than a space following #define.
/external/jemalloc/src/stats.c
|
609ae595f0358157b19311b0f9f9591db7cee705 |
|
11-Oct-2012 |
Jason Evans <je@fb.com> |
Add arena-specific and selective dss allocation. Add the "arenas.extend" mallctl, so that it is possible to create new arenas that are outside the set that jemalloc automatically multiplexes threads onto. Add the ALLOCM_ARENA() flag for {,r,d}allocm(), so that it is possible to explicitly allocate from a particular arena. Add the "opt.dss" mallctl, which controls the default precedence of dss allocation relative to mmap allocation. Add the "arena.<i>.dss" mallctl, which makes it possible to set the default dss precedence on a per arena or global basis. Add the "arena.<i>.purge" mallctl, which obsoletes "arenas.purge". Add the "stats.arenas.<i>.dss" mallctl.
/external/jemalloc/src/stats.c
|
c584fc75bb57ba275605c66522cbae45098d56f0 |
|
02-May-2012 |
Mike Hommey <mh@glandium.org> |
Don't use sizeof() on a VARIABLE_ARRAY In the alloca() case, this fails to be the right size.
/external/jemalloc/src/stats.c
|
3597e91482c804592105ea078a0825fdb7c68dff |
|
02-May-2012 |
Mike Hommey <mh@glandium.org> |
Allow je_malloc_message to be overridden when linking statically If an application wants to override je_malloc_message, it is better to define the symbol locally than to change its value in main(), which might be too late for various reasons. Due to je_malloc_message being initialized in util.c, statically linking jemalloc with an application defining je_malloc_message fails due to "multiple definition of" the symbol. Defining it without a value (like je_malloc_conf) makes it more easily overridable.
/external/jemalloc/src/stats.c
|
8b49971d0ce0819af78aa2a278c26ecb298ee134 |
|
24-Apr-2012 |
Mike Hommey <mh@glandium.org> |
Avoid variable length arrays and remove declarations within code MSVC doesn't support C99, and building as C++ to be able to use them is dangerous, as C++ and C99 are incompatible. Introduce a VARIABLE_ARRAY macro that either uses VLA when supported, or alloca() otherwise. Note that using alloca() inside loops doesn't quite work like VLAs, thus the use of VARIABLE_ARRAY there is discouraged. It might be worth investigating ways to check whether VARIABLE_ARRAY is used in such context at runtime in debug builds and bail out if that happens.
/external/jemalloc/src/stats.c
|
0b25fe79aaf8840a5acda7e3160a053d42349872 |
|
18-Apr-2012 |
Jason Evans <je@fb.com> |
Update prof defaults to match common usage. Change the "opt.lg_prof_sample" default from 0 to 19 (1 B to 512 KiB). Change the "opt.prof_accum" default from true to false. Add the "opt.prof_final" mallctl, so that "opt.prof_prefix" need not be abused to disable final profile dumping.
/external/jemalloc/src/stats.c
|
122449b073bcbaa504c4f592ea2d733503c272d2 |
|
06-Apr-2012 |
Jason Evans <je@fb.com> |
Implement Valgrind support, redzones, and quarantine. Implement Valgrind support, as well as the redzone and quarantine features, which help Valgrind detect memory errors. Redzones are only implemented for small objects because the changes necessary to support redzones around large and huge objects are complicated by in-place reallocation, to the point that it isn't clear that the maintenance burden is worth the incremental improvement to Valgrind support. Merge arena_salloc() and arena_salloc_demote(). Refactor i[v]salloc() to expose the 'demote' option.
/external/jemalloc/src/stats.c
|
b147611b5253921a873191bb0589d3b18f613946 |
|
05-Apr-2012 |
Jason Evans <jasone@canonware.com> |
Add utrace(2)-based tracing (--enable-utrace).
/external/jemalloc/src/stats.c
|
9d4d76874d888986e611bd9c9a0c905841956c4d |
|
02-Apr-2012 |
Jason Evans <jasone@canonware.com> |
Finish renaming "arenas.pagesize" to "arenas.page".
/external/jemalloc/src/stats.c
|
ae4c7b4b4092906c641d69b4bf9fcb4a7d50790d |
|
02-Apr-2012 |
Jason Evans <jasone@canonware.com> |
Clean up *PAGE* macros. s/PAGE_SHIFT/LG_PAGE/g and s/PAGE_SIZE/PAGE/g. Remove remnants of the dynamic-page-shift code. Rename the "arenas.pagesize" mallctl to "arenas.page". Remove the "arenas.chunksize" mallctl, which is redundant with "opt.lg_chunk".
/external/jemalloc/src/stats.c
|
eb2398106fd1b43989c12796eb706aea79b11859 |
|
13-Mar-2012 |
Jason Evans <je@fb.com> |
Fix malloc_stats_print() option support. Fix malloc_stats_print() to honor 'b' and 'l' in the opts parameter.
/external/jemalloc/src/stats.c
|
d81e4bdd5c991bd5642c8b859ef1f752b51cd9be |
|
06-Mar-2012 |
Jason Evans <je@fb.com> |
Implement malloc_vsnprintf(). Implement malloc_vsnprintf() (a subset of vsnprintf(3)) as well as several other printing functions based on it, so that formatted printing can be relied upon without concern for inducing a dependency on floating point runtime support. Replace malloc_write() calls with malloc_*printf() where doing so simplifies the code. Add name mangling for library-private symbols in the data and BSS sections. Adjust CONF_HANDLE_*() macros in malloc_conf_init() to expose all opt_* variable use to cpp so that proper mangling occurs.
/external/jemalloc/src/stats.c
|
4507f34628dfae26e6b0a6faa13e5f9a49600616 |
|
05-Mar-2012 |
Jason Evans <je@fb.com> |
Remove the lg_tcache_gc_sweep option. Remove the lg_tcache_gc_sweep option, because it is no longer very useful. Prior to the addition of dynamic adjustment of tcache fill count, it was possible for fill/flush overhead to be a problem, but this problem no longer occurs.
/external/jemalloc/src/stats.c
|
0a5489e37da88a1a50fbf8552e0d3a7f8fd93ffc |
|
02-Mar-2012 |
Jason Evans <je@fb.com> |
Add --with-mangling. Add the --with-mangling configure option, which can be used to specify name mangling on a per public symbol basis that takes precedence over --with-jemalloc-prefix. Expose the memalign() and valloc() overrides even if --with-jemalloc-prefix is specified. This change does no real harm, and simplifies the code.
/external/jemalloc/src/stats.c
|
93c023d181269fd47ca3f8e773509bb5bd779684 |
|
29-Feb-2012 |
Jason Evans <je@fb.com> |
Remove unused variables in stats_print(). Submitted by Mike Hommey.
/external/jemalloc/src/stats.c
|
c90ad71237c05473bcb968beddebb0a487c36e75 |
|
29-Feb-2012 |
Jason Evans <je@fb.com> |
Remove the sysv option.
/external/jemalloc/src/stats.c
|
b172610317babc7f365584ddd7fdaf4eb8d9d04c |
|
29-Feb-2012 |
Jason Evans <je@fb.com> |
Simplify small size class infrastructure. Program-generate small size class tables for all valid combinations of LG_TINY_MIN, LG_QUANTUM, and PAGE_SHIFT. Use the appropriate table to generate all relevant data structures, and remove the distinction between tiny/quantum/cacheline/subpage bins. Remove --enable-dynamic-page-shift. This option didn't prove useful in practice, and it prevented optimizations. Add Tilera architecture support.
/external/jemalloc/src/stats.c
|
5389146191b279ca3b90028357dd6ad66b283def |
|
14-Feb-2012 |
Jason Evans <je@fb.com> |
Remove the opt.lg_prof_bt_max option. Remove opt.lg_prof_bt_max, and hard code it to 7. The original intention of this option was to enable faster backtracing by limiting backtrace depth. However, this makes graphical pprof output very difficult to interpret. In practice, decreasing sampling frequency is a better mechanism for limiting profiling overhead.
/external/jemalloc/src/stats.c
|
0b526ff94da7e59aa947a4d3529b2376794f8b01 |
|
14-Feb-2012 |
Jason Evans <je@fb.com> |
Remove the opt.lg_prof_tcmax option. Remove the opt.lg_prof_tcmax option and hard-code a cache size of 1024. This setting is something that users just shouldn't have to worry about. If lock contention actually ends up being a problem, the simple solution available to the user is to reduce sampling frequency.
/external/jemalloc/src/stats.c
|
746868929afae3e346b47d0fa8a78d7fb131d5a4 |
|
14-Feb-2012 |
Jason Evans <je@fb.com> |
Remove highruns statistics.
/external/jemalloc/src/stats.c
|
4162627757889ea999264c2ddbc3c354768774e2 |
|
13-Feb-2012 |
Jason Evans <je@fb.com> |
Remove the swap feature. Remove the swap feature, which enabled per application swap files. In practice this feature has not proven itself useful to users.
/external/jemalloc/src/stats.c
|
7372b15a31c63ac5cb9ed8aeabc2a0a3c005e8bf |
|
11-Feb-2012 |
Jason Evans <je@fb.com> |
Reduce cpp conditional logic complexity. Convert configuration-related cpp conditional logic to use static constant variables, e.g.: #ifdef JEMALLOC_DEBUG [...] #endif becomes: if (config_debug) { [...] } The advantage is clearer, more concise code. The main disadvantage is that data structures no longer have conditionally defined fields, so they pay the cost of all fields regardless of whether they are used. In practice, this is only a minor concern; config_stats will go away in an upcoming change, and config_prof is the only other major feature that depends on more than a few special-purpose fields.
/external/jemalloc/src/stats.c
|
334cc021422869329f08349e088e7f491318e087 |
|
11-Nov-2011 |
Jason Evans <je@fb.com> |
Fix malloc_stats_print(..., "a") output. Fix the logic in stats_print() such that if the "a" flag is passed in without the "m" flag, merged statistics will be printed even if only one arena is initialized.
/external/jemalloc/src/stats.c
|
7427525c28d58c423a68930160e3b0fe577fe953 |
|
01-Apr-2011 |
Jason Evans <jasone@canonware.com> |
Move repo contents in jemalloc/ to top level.
/external/jemalloc/src/stats.c
|