Deleted Added
full compact
ChangeLog (286866) ChangeLog (288090)
1Following are change highlights associated with official releases. Important
2bug fixes are all mentioned, but some internal enhancements are omitted here for
3brevity. Much more detail can be found in the git revision history:
4
5 https://github.com/jemalloc/jemalloc
6
1Following are change highlights associated with official releases. Important
2bug fixes are all mentioned, but some internal enhancements are omitted here for
3brevity. Much more detail can be found in the git revision history:
4
5 https://github.com/jemalloc/jemalloc
6
7* 4.0.2 (September 21, 2015)
8
9 This bugfix release addresses a few bugs specific to heap profiling.
10
11 Bug fixes:
12 - Fix ixallocx_prof_sample() to never modify nor create sampled small
13 allocations. xallocx() is in general incapable of moving small allocations,
14 so this fix removes buggy code without loss of generality.
15 - Fix irallocx_prof_sample() to always allocate large regions, even when
16 alignment is non-zero.
17 - Fix prof_alloc_rollback() to read tdata from thread-specific data rather
18 than dereferencing a potentially invalid tctx.
19
20* 4.0.1 (September 15, 2015)
21
22 This is a bugfix release that is somewhat high risk due to the amount of
23 refactoring required to address deep xallocx() problems. As a side effect of
24 these fixes, xallocx() now tries harder to partially fulfill requests for
25 optional extra space. Note that a couple of minor heap profiling
26 optimizations are included, but these are better thought of as performance
27 fixes that were integral to disovering most of the other bugs.
28
29 Optimizations:
30 - Avoid a chunk metadata read in arena_prof_tctx_set(), since it is in the
31 fast path when heap profiling is enabled. Additionally, split a special
32 case out into arena_prof_tctx_reset(), which also avoids chunk metadata
33 reads.
34 - Optimize irallocx_prof() to optimistically update the sampler state. The
35 prior implementation appears to have been a holdover from when
36 rallocx()/xallocx() functionality was combined as rallocm().
37
38 Bug fixes:
39 - Fix TLS configuration such that it is enabled by default for platforms on
40 which it works correctly.
41 - Fix arenas_cache_cleanup() and arena_get_hard() to handle
42 allocation/deallocation within the application's thread-specific data
43 cleanup functions even after arenas_cache is torn down.
44 - Fix xallocx() bugs related to size+extra exceeding HUGE_MAXCLASS.
45 - Fix chunk purge hook calls for in-place huge shrinking reallocation to
46 specify the old chunk size rather than the new chunk size. This bug caused
47 no correctness issues for the default chunk purge function, but was
48 visible to custom functions set via the "arena.<i>.chunk_hooks" mallctl.
49 - Fix heap profiling bugs:
50 + Fix heap profiling to distinguish among otherwise identical sample sites
51 with interposed resets (triggered via the "prof.reset" mallctl). This bug
52 could cause data structure corruption that would most likely result in a
53 segfault.
54 + Fix irealloc_prof() to prof_alloc_rollback() on OOM.
55 + Make one call to prof_active_get_unlocked() per allocation event, and use
56 the result throughout the relevant functions that handle an allocation
57 event. Also add a missing check in prof_realloc(). These fixes protect
58 allocation events against concurrent prof_active changes.
59 + Fix ixallocx_prof() to pass usize_max and zero to ixallocx_prof_sample()
60 in the correct order.
61 + Fix prof_realloc() to call prof_free_sampled_object() after calling
62 prof_malloc_sample_object(). Prior to this fix, if tctx and old_tctx were
63 the same, the tctx could have been prematurely destroyed.
64 - Fix portability bugs:
65 + Don't bitshift by negative amounts when encoding/decoding run sizes in
66 chunk header maps. This affected systems with page sizes greater than 8
67 KiB.
68 + Rename index_t to szind_t to avoid an existing type on Solaris.
69 + Add JEMALLOC_CXX_THROW to the memalign() function prototype, in order to
70 match glibc and avoid compilation errors when including both
71 jemalloc/jemalloc.h and malloc.h in C++ code.
72 + Don't assume that /bin/sh is appropriate when running size_classes.sh
73 during configuration.
74 + Consider __sparcv9 a synonym for __sparc64__ when defining LG_QUANTUM.
75 + Link tests to librt if it contains clock_gettime(2).
76
7* 4.0.0 (August 17, 2015)
8
9 This version contains many speed and space optimizations, both minor and
10 major. The major themes are generalization, unification, and simplification.
11 Although many of these optimizations cause no visible behavior change, their
12 cumulative effect is substantial.
13
14 New features:

--- 690 unchanged lines hidden ---
77* 4.0.0 (August 17, 2015)
78
79 This version contains many speed and space optimizations, both minor and
80 major. The major themes are generalization, unification, and simplification.
81 Although many of these optimizations cause no visible behavior change, their
82 cumulative effect is substantial.
83
84 New features:

--- 690 unchanged lines hidden ---