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
David Goldblatt
4eed989bbf
Stats printing: convert arena bin stats to use emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
a9f3cedc6e
Stats printing: remove a spurious newline.
...
This was left over from a previous emitter conversion. It didn't affect the
correctness of the output.
2018-03-09 11:47:17 -08:00
David Goldblatt
a1738f4efd
Stats printing: Make arena mutex stats use the emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
07fb707623
Stats printing: convert most per-arena stats to use the emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
8fc850695d
Stats printing: convert paging and alloc counts to use the emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
bc6620f73e
Stats printing: convert decay stats to use the emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
a6ef061c43
Stats printing: Move emitter cutoff point into stats_arena_print.
2018-03-09 11:47:17 -08:00
David Goldblatt
cbde666d9a
Stats printing: move stats_print_helper to use emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
86c61d4a57
Stats printing: Move global mutex stats to use emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
9e1846b004
Stats printing: move non-mutex arena stats to the emitter.
...
Another step in the conversion process. The mutex is a little different,
because we we want to emit it as an array.
2018-03-09 11:47:17 -08:00
David Goldblatt
8076b28721
Stats printing: Remove explicit callback passing to stats_print_helper.
...
This makes the emitter the only source of callback information, which is a step
towards where we want to be.
2018-03-09 11:47:17 -08:00
David Goldblatt
0d20eda127
Stats printing: Move emitter -> manual cutoff point.
...
This makes it so that the "general" portion of the stats code is completely
agnostic to emitter type.
2018-03-09 11:47:17 -08:00
David Goldblatt
ec31d476ff
Stats printing: Convert profiling stats to use the emitter.
...
While we're at it, print them in table form, too.
2018-03-09 11:47:17 -08:00
David Goldblatt
e5acc35400
Stats printing: Convert general arena stats to use the emitter.
2018-03-09 11:47:17 -08:00
David Goldblatt
4a335e0c6f
Stats printing: convert config and opt output to use emitter.
...
This is a step along the path towards using the emitter for all stats output.
2018-03-09 11:47:17 -08:00
David Goldblatt
b646f89173
Stats printing: Convert header and footer to use emitter.
2018-03-09 11:47:17 -08:00
Qi Wang
e4f090e8df
Add opt.thp which allows explicit hugepage usage.
...
"always" marks all user mappings as MADV_HUGEPAGE; while "never" marks all
mappings as MADV_NOHUGEPAGE. The default setting "default" does not change any
settings. Note that all the madvise calls are part of the default extent hooks
by design, so that customized extent hooks have complete control over the
mappings including hugepage settings.
2018-03-08 13:08:06 -08:00
Qi Wang
efa40532dc
Remove config.thp which wasn't in use.
2018-03-08 13:08:06 -08:00
Rajeev Misra
f47e39d11a
handle 32 bit mutex counters
2018-01-04 11:08:17 -08:00
Qi Wang
5e0332890f
Output opt.lg_extent_max_active_fit in stats.
2017-12-14 15:49:15 -08:00
Qi Wang
47203d5f42
Output all counters for bin mutex stats.
...
The saved space is not worth the trouble of missing counters.
2017-10-19 16:31:54 -07:00
Qi Wang
e55c3ca267
Add stats for metadata_thp.
...
Report number of THPs used in arena and aggregated stats.
2017-08-30 16:47:32 -07:00
Qi Wang
47b20bb654
Change opt.metadata_thp to [disabled,auto,always].
...
To avoid the high RSS caused by THP + low usage arena (i.e. THP becomes a
significant percentage), added a new "auto" option which will only start using
THP after a base allocator used up the first THP region. Starting from the
second hugepage (in a single arena), "auto" behaves the same as "always",
i.e. madvise hugepage right away.
2017-08-30 16:47:32 -07:00
Qi Wang
8fdd9a5797
Implement opt.metadata_thp
...
This option enables transparent huge page for base allocators (require
MADV_HUGEPAGE support).
2017-08-11 14:51:20 -07:00
Qi Wang
2e4d1a4e30
Output total_wait_ns for bin mutexes.
2017-05-30 22:25:11 -07:00
Jason Evans
c606a87d2a
Add the --disable-thp option to support cross compiling.
...
This resolves #669 .
2017-05-30 11:30:54 -07:00
Qi Wang
d5ef5ae934
Add opt.stats_print_opts.
...
The value is passed to atexit(3)-triggered malloc_stats_print() calls.
2017-05-29 11:54:00 -07:00
Qi Wang
b86d271cbf
Added opt_abort_conf: abort on invalid config options.
2017-05-26 21:14:28 -07:00
David Goldblatt
18ecbfa89e
Header refactoring: unify and de-catchall mutex module
2017-05-24 15:27:30 -07:00
Qi Wang
2bee0c6251
Add background thread related stats.
2017-05-23 12:26:20 -07:00
Qi Wang
b693c7868e
Implementing opt.background_thread.
...
Added opt.background_thread to enable background threads, which handles purging
currently. When enabled, decay ticks will not trigger purging (which will be
left to the background threads). We limit the max number of threads to NCPUs.
When percpu arena is enabled, set CPU affinity for the background threads as
well.
The sleep interval of background threads is dynamic and determined by computing
number of pages to purge in the future (based on backlog).
2017-05-23 12:26:20 -07:00
Jason Evans
6e62c62862
Refactor *decay_time into *decay_ms.
...
Support millisecond resolution for decay times. Among other use cases
this makes it possible to specify a short initial dirty-->muzzy decay
phase, followed by a longer muzzy-->clean decay phase.
This resolves #812 .
2017-05-18 11:33:45 -07:00
Qi Wang
baf3e294e0
Add stats: arena uptime.
2017-05-18 10:04:28 -07:00
Jason Evans
b9ab04a191
Refactor !opt.munmap to opt.retain.
2017-04-29 09:24:12 -07:00
David Goldblatt
89e2d3c12b
Header refactoring: ctl - unify and remove from catchall.
...
In order to do this, we introduce the mutex_prof module, which breaks a circular
dependency between ctl and prof.
2017-04-25 09:51:38 -07:00
Jason Evans
c67c3e4a63
Replace --disable-munmap with opt.munmap.
...
Control use of munmap(2) via a run-time option rather than a
compile-time option (with the same per platform default). The old
behavior of --disable-munmap can be achieved with
--with-malloc-conf=munmap:false.
This partially resolves #580 .
2017-04-24 20:37:16 -07:00
Jason Evans
b2a8453a3f
Remove --disable-tls.
...
This option is no longer useful, because TLS is correctly configured
automatically on all supported platforms.
This partially resolves #580 .
2017-04-21 11:12:29 -07:00
Jason Evans
4403c9ab44
Remove --disable-tcache.
...
Simplify configuration by removing the --disable-tcache option, but
replace the testing for that configuration with
--with-malloc-conf=tcache:false.
Fix the thread.arena and thread.tcache.flush mallctls to work correctly
if tcache is disabled.
This partially resolves #580 .
2017-04-21 10:06:12 -07:00
Qi Wang
acf4c8ae33
Output 4 counters for bin mutexes instead of just 2.
2017-04-19 14:53:32 -07:00
David Goldblatt
d9ec36e22d
Header refactoring: move assert.h out of the catch-all
2017-04-18 18:35:03 -07:00