Yinan Zhang
9f71b5779b
Output prof stats in stats print
2021-01-07 20:39:49 -08:00
Yinan Zhang
1f1a0231ed
Split macros for initializing stats headers
2021-01-07 20:39:49 -08:00
David Goldblatt
a9fa2defdb
Add JEMALLOC_COLD, and mark some functions cold.
...
This hints to the compiler that it should care more about space than CPU (among
other things). In cases where the compiler lacks profile-guided information,
this can be a substantial space savings.
For now, we mark the mallctl or atexit driven profiling and stats functions that
take up the most space.
2021-01-04 14:55:49 -08:00
Yinan Zhang
22d62d8cbd
Handle ending gap properly for HPA stats
2020-12-18 16:40:57 -08:00
Yinan Zhang
6c5a3a24dd
Omit bin stats rows with no data
2020-12-18 16:40:57 -08:00
Yinan Zhang
74bd63b203
Optimize stats print using partial name-to-mib
2020-12-18 10:39:58 -08:00
David Goldblatt
1e3b8636ff
HPA: Remove unused malloc_conf options.
2020-12-08 12:10:48 -08:00
David Goldblatt
3ed0b4e8a3
HPA: Add an nevictions counter.
...
I.e. the number of times we've purged a hugepage-sized region.
2020-12-07 06:21:08 -08:00
David Goldblatt
43af63fff4
HPA: Manage whole hugepages at a time.
...
This redesigns the HPA implementation to allow us to manage hugepages all at
once, locally, without relying on a global fallback.
2020-12-07 06:21:08 -08:00
David Goldblatt
6599651aee
PA: Use an SEC in fron of the HPA shard.
2020-10-23 11:14:34 -07:00
David Goldblatt
1964b08394
HPA: Add stats for the hpa_shard.
2020-10-23 11:14:34 -07:00
David Goldblatt
534504d4a7
HPA: add size-exclusion functionality.
...
I.e. only allowing allocations under or over certain sizes.
2020-10-23 11:14:34 -07:00
David Goldblatt
bf025d2ec8
HPA: Make slab sizes and maxes configurable.
...
This allows easy experimentation with them as tuning parameters.
2020-10-23 11:14:34 -07:00
David Goldblatt
1c7da33317
HPA: Tie components into a PAI implementation.
2020-10-23 11:14:34 -07:00
Yinan Zhang
a795b19327
Remove beginning define in source files
...
```
sed -i "/^#define JEMALLOC_[A-Z_]*_C_$/d" src/*.c;
```
2020-06-19 12:15:44 -07:00
David Goldblatt
6cdac3c573
Tcache: Make flush fractions configurable.
2020-05-16 13:34:23 -07:00
David Goldblatt
7503b5b33a
Stats, CTL: Expose new tcache settings.
2020-05-16 13:34:23 -07:00
Yinan Zhang
b06dfb9ccc
Push event handlers to constituent modules
2020-05-12 09:16:16 -07:00
Yinan Zhang
abd4674931
Extract out per event postponed wait time fetching
2020-05-12 09:16:16 -07:00
Yinan Zhang
733ae918f0
Extract out per event new wait time fetching
2020-05-12 09:16:16 -07:00
Yinan Zhang
f533ab6da6
Add forking handling for stats
2020-05-11 15:35:06 -07:00
Yinan Zhang
2097e1945b
Unify write callback signature
2020-05-11 14:51:24 -07:00
Qi Wang
88b0e03a4e
Implement opt.stats_interval and the _opts options.
...
Add options stats_interval and stats_interval_opts to allow interval based stats
printing. This provides an easy way to collect stats without code changes,
because opt.stats_print may not work (some binaries never exit).
2020-01-29 09:57:55 -08:00
David T. Goldblatt
de81a4eada
Add stats counters for number of zero reallocs
2019-10-29 17:48:44 -07:00
David T. Goldblatt
9cfa805947
Realloc: Make behavior of realloc(ptr, 0) configurable.
2019-10-29 17:48:44 -07:00
Yinan Zhang
4786099a3a
Increase column width for global malloc/free rate
2019-10-24 14:54:51 -07:00
Yinan Zhang
4fe50bc7d0
Fix amd64 MSVC warning
2019-10-18 10:16:29 -07:00
Yinan Zhang
eb70fef8ca
Make compact json format as default
...
Saves 20-50% of the output size.
2019-08-12 13:59:50 -07:00
Qi Wang
4e36ce34c1
Track the leaked VM space via the abandoned_vm counter.
...
The counter is 0 unless metadata allocation failed (indicates OOM), and is
mainly for sanity checking.
2019-07-24 11:24:22 -07:00
Yinan Zhang
c92ac30601
Add confirm_conf option
...
If the confirm_conf option is set, when the program starts, each of
the four malloc_conf strings will be printed, and each option will
be printed when being set.
2019-05-22 09:38:39 -07:00
Qi Wang
07c44847c2
Track nfills and nflushes for arenas.i.small / large.
...
Small is added purely for convenience. Large flushes wasn't tracked before and
can be useful in analysis. Large fill simply reports nmalloc, since there is no
batch fill for large currently.
2019-05-15 10:05:09 -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
David Goldblatt
f95a88fcd9
Safety checks: Expose config value via mallctl and stats.
2019-04-15 16:48:12 -07:00
Qi Wang
b33eb26dee
Tweak the spacing for the total_wait_time per second.
2019-01-28 15:37:19 -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
522d1e7b4b
Tweak the spacing for nrequests in stats output.
2019-01-23 17:42:12 -08:00
Qi Wang
8c9571376e
Fix stats output (rate for total # of requests).
...
The rate calculation for the total row was missing.
2019-01-23 17:42:12 -08:00
Qi Wang
7a815c1b7c
Un-experimental the huge_threshold feature.
2019-01-16 12:28:57 -08:00
Alexander Zinoviev
36de5189c7
Add rate counters to stats
2018-12-18 09:59:41 -08:00
Qi Wang
45bb4483ba
Add stats for arenas.bin.i.nshards.
2018-12-03 17:17:03 -08:00
Tyler Etzel
126252a7e6
Add stats for the size of extent_avail heap
2018-08-02 10:16:06 -07:00
Tyler Etzel
c14e6c0819
Add extents information to mallocstats output
...
- Show number/bytes of extents of each size that are dirty, muzzy, retained.
2018-08-02 10:16:06 -07:00
Tyler Etzel
eb261e53a6
Small refactoring of emitter
...
- Make API more clear for using as standalone json emitter
- Support cases that weren't possible before, e.g.
- emitting primitive values in an array
- emitting nested arrays
2018-08-01 13:27:11 -07:00
Qi Wang
cdf15b458a
Rename huge_threshold to experimental, and tweak documentation.
2018-06-29 10:35:02 -07:00
Qi Wang
1302af4c43
Add ctl and stats for opt.huge_threshold.
2018-06-29 10:35:02 -07:00
Qi Wang
9bd8deb260
Fix stats output for opt.lg_extent_max_active_fit.
2018-06-05 10:23:28 -07:00
Qi Wang
09edea3f5c
Tweak the format of the per arena summary section.
...
Increase the width to ensure enough space for long running programs.
2018-05-17 12:58:56 -07:00
Qi Wang
956c4ad6b5
Change mutable option output in stats to avoid stringify issues.
2018-03-15 14:42:48 -07:00
Qi Wang
baffeb1d0a
Fix a typo in stats.
2018-03-15 14:42:48 -07:00
David Goldblatt
4c36cd2cc5
Stats printing: Convert arena large stats to use emitter.
...
This completes the conversion; we now have only structured text output.
2018-03-09 11:47:17 -08:00