Skip to content

Commit 304c919

Browse files
committed
Update ChangeLog for 5.3.0.
1 parent 8cb8146 commit 304c919

File tree

1 file changed

+100
-0
lines changed

1 file changed

+100
-0
lines changed

ChangeLog

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,106 @@ brevity. Much more detail can be found in the git revision history:
44

55
https://github.com/jemalloc/jemalloc
66

7+
* 5.3.0 (May 6, 2022)
8+
9+
This release contains many speed and space optimizations, from micro
10+
optimizations on common paths to rework of internal data structures and
11+
locking schemes, and many more too detailed to list below. Multiple percent
12+
of system level metric improvements were measured in tested production
13+
workloads. The release has gone through large-scale production testing.
14+
15+
New features:
16+
- Add the thread.idle mallctl which hints that the calling thread will be
17+
idle for a nontrivial period of time. (@davidtgoldblatt)
18+
- Allow small size classes to be the maximum size class to cache in the
19+
thread-specific cache, through the opt.[lg_]tcache_max option. (@interwq,
20+
@jordalgo)
21+
- Make the behavior of realloc(ptr, 0) configurable with opt.zero_realloc.
22+
(@davidtgoldblatt)
23+
- Add 'make uninstall' support. (@sangshuduo, @Lapenkov)
24+
- Support C++17 over-aligned allocation. (@marksantaniello)
25+
- Add the thread.peak mallctl for approximate per-thread peak memory tracking.
26+
(@davidtgoldblatt)
27+
- Add interval-based stats output opt.stats_interval. (@interwq)
28+
- Add prof.prefix to override filename prefixes for dumps. (@zhxchen17)
29+
- Add high resolution timestamp support for profiling. (@tyroguru)
30+
- Add the --collapsed flag to jeprof for flamegraph generation.
31+
(@igorwwwwwwwwwwwwwwwwwwww)
32+
- Add the --debug-syms-by-id option to jeprof for debug symbols discovery.
33+
(@DeannaGelbart)
34+
- Add the opt.prof_leak_error option to exit with error code when leak is
35+
detected using opt.prof_final. (@yunxuo)
36+
- Add opt.cache_oblivious as an runtime alternative to config.cache_oblivious.
37+
(@interwq)
38+
- Add mallctl interfaces:
39+
+ opt.zero_realloc (@davidtgoldblatt)
40+
+ opt.cache_oblivious (@interwq)
41+
+ opt.prof_leak_error (@yunxuo)
42+
+ opt.stats_interval (@interwq)
43+
+ opt.stats_interval_opts (@interwq)
44+
+ opt.tcache_max (@interwq)
45+
+ opt.trust_madvise (@azat)
46+
+ prof.prefix (@zhxchen17)
47+
+ stats.zero_reallocs (@davidtgoldblatt)
48+
+ thread.idle (@davidtgoldblatt)
49+
+ thread.peak.{read,reset} (@davidtgoldblatt)
50+
51+
Bug fixes:
52+
- Fix the synchronization around explicit tcache creation which could cause
53+
invalid tcache identifiers. This regression was first released in 5.0.0.
54+
(@yoshinorim, @davidtgoldblatt)
55+
- Fix a profiling biasing issue which could cause incorrect heap usage and
56+
object counts. This issue existed in all previous releases with the heap
57+
profiling feature. (@davidtgoldblatt)
58+
- Fix the order of stats counter updating on large realloc which could cause
59+
failed assertions. This regression was first released in 5.0.0. (@azat)
60+
- Fix the locking on the arena destroy mallctl, which could cause concurrent
61+
arena creations to fail. This functionality was first introduced in 5.0.0.
62+
(@interwq)
63+
64+
Portability improvements:
65+
- Remove nothrow from system function declarations on macOS and FreeBSD.
66+
(@davidtgoldblatt, @fredemmott, @leres)
67+
- Improve overcommit and page alignment settings on NetBSD. (@zoulasc)
68+
- Improve CPU affinity support on BSD platforms. (@devnexen)
69+
- Improve utrace detection and support. (@devnexen)
70+
- Improve QEMU support with MADV_DONTNEED zeroed pages detection. (@azat)
71+
- Add memcntl support on Solaris / illumos. (@devnexen)
72+
- Improve CPU_SPINWAIT on ARM. (@AWSjswinney)
73+
- Improve TSD cleanup on FreeBSD. (@Lapenkov)
74+
- Disable percpu_arena if the CPU count cannot be reliably detected. (@azat)
75+
- Add malloc_size(3) override support. (@devnexen)
76+
- Add mmap VM_MAKE_TAG support. (@devnexen)
77+
- Add support for MADV_[NO]CORE. (@devnexen)
78+
- Add support for DragonFlyBSD. (@devnexen)
79+
- Fix the QUANTUM setting on MIPS64. (@brooksdavis)
80+
- Add the QUANTUM setting for ARC. (@vineetgarc)
81+
- Add the QUANTUM setting for LoongArch. (@wangjl-uos)
82+
- Add QNX support. (@jqian-aurora)
83+
- Avoid atexit(3) calls unless the relevant profiling features are enabled.
84+
(@BusyJay, @laiwei-rice, @interwq)
85+
- Fix unknown option detection when using Clang. (@Lapenkov)
86+
- Fix symbol conflict with musl libc. (@georgthegreat)
87+
- Add -Wimplicit-fallthrough checks. (@nickdesaulniers)
88+
- Add __forceinline support on MSVC. (@santagada)
89+
- Improve FreeBSD and Windows CI support. (@Lapenkov)
90+
- Add CI support for PPC64LE architecture. (@ezeeyahoo)
91+
92+
Incompatible changes:
93+
- Maximum size class allowed in tcache (opt.[lg_]tcache_max) now has an upper
94+
bound of 8MiB. (@interwq)
95+
96+
Optimizations and refactors (@davidtgoldblatt, @Lapenkov, @interwq):
97+
- Optimize the common cases of the thread cache operations.
98+
- Optimize internal data structures, including RB tree and pairing heap.
99+
- Optimize the internal locking on extent management.
100+
- Extract and refactor the internal page allocator and interface modules.
101+
102+
Documentation:
103+
- Fix doc build with --with-install-suffix. (@lawmurray, @interwq)
104+
- Add PROFILING_INTERNALS.md. (@davidtgoldblatt)
105+
- Ensure the proper order of doc building and installation. (@Mingli-Yu)
106+
7107
* 5.2.1 (August 5, 2019)
8108

9109
This release is primarily about Windows. A critical virtual memory leak is

0 commit comments

Comments
 (0)