Dave Watson
b62d126df8
Add max_active_fit to first_fit
...
The max_active_fit check is currently only on the best_fit
path, add it to the first_fit path also.
2019-05-08 13:15:19 -07:00
Doron Roberts-Kedes
7fc4f2a32c
Add nonfull_slabs to bin_stats_t.
...
When config_stats is enabled track the size of bin->slabs_nonfull in
the new nonfull_slabs counter in bin_stats_t. This metric should be
useful for establishing an upper ceiling on the savings possible by
meshing.
2019-04-29 13:35:02 -07:00
Yinan Zhang
ae124b8684
Improve size class header
...
Mainly fixing typos. The only non-trivial change is in the
computation for SC_NPSIZES, though the result wouldn't be any
different when SC_NGROUP = 4 as is always the case at the moment.
2019-04-24 10:45:12 -07:00
Fabrice Fontaine
702d76dbd0
configure.ac: Add an option to disable doc
...
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2019-04-23 15:32:02 -07:00
风
498f47e1ec
Fix typo derived from tcmalloc's pprof
...
The same pr is submitted into gperftools:
https://github.com/gperftools/gperftools/pull/1105
2019-04-23 15:29:57 -07:00
Qi Wang
1aabab5fdc
Enforce TLS_MODEL attribute.
...
Caught by @zoulasc in #1460 . The attribute needs to be added in the headers as
well.
2019-04-16 11:07:15 -07:00
David Goldblatt
21cfe59ff7
Safety checks: Run tests by default
2019-04-15 16:48:12 -07:00
David Goldblatt
33e1dad680
Safety checks: Add a redzoning feature.
2019-04-15 16:48:12 -07:00
David Goldblatt
b92c9a1a81
Safety checks: Indirect through a function.
...
This will let us share code on failure pathways.pathways
2019-04-15 16:48:12 -07:00
David Goldblatt
f95a88fcd9
Safety checks: Expose config value via mallctl and stats.
2019-04-15 16:48:12 -07:00
David Goldblatt
f4d24f05e1
Move extra size checks behind a config flag.
...
This will let us turn that flag into a generic "turn on runtime checks" flag
that guards other functionality we have planned.
2019-04-15 16:48:12 -07:00
zoulasc
7f7935cf78
Add an autoconf feature test for format_arg and a jemalloc-specific
...
macro for it.
2019-04-15 15:14:46 -07:00
zoulasc
14e4176758
Fix incorrect macro use.
...
Compiling with warnings produces missing prototype warnings.
2019-04-15 15:14:46 -07:00
zoulasc
020b5dc7ac
Convert the format generator function to an annotated format function,
...
so that the generated formats can be checked by the compiler.
2019-04-15 15:14:46 -07:00
Yinan Zhang
7ee3897740
Separate tests for extent utilization API
...
As title.
2019-04-10 13:03:20 -07:00
mgrice
d3d7a8ef09
remove compare and branch in fast path for c++ operator delete[]
...
Summary: sdallocx is checking a flag that will never be set (at least in the provided C++ destructor implementation). This branch will probably only rarely be mispredicted however it removes two instructions in sdallocx and one at the callsite (to zero out flags).
2019-04-08 10:59:05 -07:00
Qi Wang
c2a3a7cd3f
Fix test/unit/prof_log
...
Compiler optimizations may produce traces more than expected. Instead verify
the lower bound only.
2019-04-05 13:47:10 -07:00
Qi Wang
93084cdc89
Ensure page alignment on extent_alloc.
...
This is discovered and suggested by @jasone in #1468 . When custom extent hooks
are in use, we should ensure page alignment on the extent alloc path, instead of
relying on the user hooks to do so.
2019-04-04 13:49:37 -07:00
Yinan Zhang
9aab3f2be0
Add memory utilization analytics to mallctl
...
The analytics tool is put under experimental.utilization namespace in
mallctl. Input is one pointer or an array of pointers and the output
is a list of memory utilization statistics.
2019-04-04 13:48:39 -07:00
Qi Wang
b0b3e49a54
Merge branch 'dev'
2019-04-02 17:50:42 -07:00
Qi Wang
f7489dc8f1
Update Changelog for 5.2.0.
2019-04-02 17:40:42 -07:00
Qi Wang
978a7a21ae
Use iallocztm instead of ialloc in prof_log functions.
...
Explicitly use iallocztm for internal allocations. ialloc could trigger arena
creation, which may cause lock order reversal (narenas_mtx and log_mtx).
2019-04-02 16:53:00 -07:00
Qi Wang
6fe11633b0
Fix the binshard unit test.
...
The test attempts to trigger usage of multiple sharded bins, which percpu_arena
makes it less reliable.
2019-04-02 16:53:00 -07:00
Qi Wang
064d6e570e
Tweak the wording about oversize_threshold.
2019-04-01 10:36:29 -07:00
Qi Wang
0101d5ebef
Avoid check_min for opt_lg_extent_max_active_fit.
...
This fixes a compiler warning.
2019-03-29 15:56:53 -07:00
Qi Wang
59d9891948
Add the missing unlock in the error path of extent_register.
2019-03-29 15:56:53 -07:00
Qi Wang
ce03e4c7b8
Document opt.oversize_threshold.
2019-03-29 11:55:05 -07:00
Qi Wang
788a657cee
Allow low values of oversize_threshold to disable the feature.
...
We should allow a way to easily disable the feature (e.g. not reserving the
arena id at all).
2019-03-29 11:33:00 -07:00
Qi Wang
a4d017f5e5
Output message before aborting on tcache size-matching check.
2019-03-29 11:33:00 -07:00
Qi Wang
fb56766ca9
Eagerly purge oversized merged extents.
...
This change improves memory usage slightly, at virtually no CPU cost.
2019-03-14 17:34:55 -07:00
Qi Wang
f6c30cbafa
Remove some unused comments.
2019-03-14 17:34:55 -07:00
Qi Wang
b804d0f019
Fallback to 32-bit when 8-bit atomics are missing for TSD.
...
When it happens, this might cause a slowdown on the fast path operations.
However such case is very rare.
2019-03-09 12:52:06 -08:00
Qi Wang
06f0850427
Detect if 8-bit atomics are available.
...
In some rare cases (older compiler, e.g. gcc 4.2 w/ MIPS), 8-bit atomics might
be unavailable. Detect such cases so that we can workaround.
2019-03-09 12:52:06 -08:00
Jason Evans
14d3686c9f
Do not use #pragma GCC diagnostic with gcc < 4.6.
...
This regression was introduced by
3d29d11ac2
(Clean compilation -Wextra).
2019-03-09 12:10:30 -08:00
Qi Wang
ac24ffb21e
Fix a syntax error in configure.ac
...
Introduced in e13400c919
.
2019-03-04 10:50:17 -08:00
Jason Evans
775fe302a7
Remove JE_FORCE_SYNC_COMPARE_AND_SWAP_[48].
...
These macros have been unused since
d4ac7582f3
(Introduce a backport of C11
atomics).
2019-02-22 14:22:16 -08:00
Dave Rigby
cbdb1807ce
Stringify tls_callback linker directive
...
Proposed fix for #1444 - ensure that `tls_callback` in the `#pragma comment(linker)`directive gets the same prefix added as it does i the C declaration.
2019-02-22 12:43:35 -08:00
Qi Wang
18450d0abe
Guard libgcc unwind init with opt_prof.
...
Only triggers libgcc unwind init when prof is enabled. This helps workaround
some bootstrapping issues.
2019-02-21 16:04:47 -08:00
Jason Evans
dca7060d5e
Avoid redefining tsd_t.
...
This fixes a build failure when integrating with FreeBSD's libc. This
regression was introduced by d1e11d48d4
(Move tsd link and in_hook after tcache.).
2019-02-20 20:27:55 -08:00
Qi Wang
9015deb126
Add build_doc by default.
...
However, skip building the docs (and output warnings) if XML support is missing.
This allows `make install` to succeed w/o `make dist`.
2019-02-08 14:13:20 -08:00
Qi Wang
23b15e764b
Add --disable-libdl to travis.
2019-02-06 21:00:59 -08:00
Qi Wang
2db2d2ef5e
Make background_thread not dependent on libdl.
...
When not using libdl, still allows background_thread to be enabled.
2019-02-06 21:00:59 -08:00
Qi Wang
1f55a15467
Add configure option --disable-libdl.
...
This makes it possible to build full static binary.
2019-02-06 21:00:59 -08:00
Qi Wang
8e9a613122
Disable muzzy decay by default.
2019-02-04 14:38:54 -08:00
Qi Wang
e13400c919
Sanity check szind on tcache flush.
...
This adds some overhead to the tcache flush path (which is one of the
popular paths). Guard it behind a config option.
2019-02-01 12:31:34 -08:00
Qi Wang
b33eb26dee
Tweak the spacing for the total_wait_time per second.
2019-01-28 15:37:19 -08:00
Qi Wang
374dc30d3d
Update copyright dates.
2019-01-25 13:25:20 -08:00
Qi Wang
e3db480f6f
Rename huge_threshold to oversize_threshold.
...
The keyword huge tend to remind people of huge pages which is not relevent to
the feature.
2019-01-25 13:15:45 -08:00
Qi Wang
350809dc5d
Set huge_threshold to 8M by default.
...
This feature uses an dedicated arena to handle huge requests, which
significantly improves VM fragmentation. In production workload we tested it
often reduces VM size by >30%.
2019-01-24 13:29:23 -08:00
Qi Wang
d3145014a0
Explicitly use arena 0 in alignment and OOM tests.
...
This helps us avoid issues with size based routing (i.e. the huge_threshold
feature).
2019-01-24 13:29:23 -08:00