602c8e0971
Rename data structures (prof_thr_cnt_t-->prof_tctx_t, prof_ctx_t-->prof_gctx_t), and convert to storing a prof_tctx_t for sampled objects. Convert PROF_ALLOC_PREP() to prof_alloc_prep(), since precise backtrace depth within jemalloc functions is no longer an issue (pprof prunes irrelevant frames). Implement mallctl's: - prof.reset implements full sample data reset, and optional change of sample interval. - prof.lg_sample reads the current sample interval (opt.lg_prof_sample was the permanent source of truth prior to prof.reset). - thread.prof.name provides naming capability for threads within heap profile dumps. - thread.prof.active makes it possible to activate/deactivate heap profiling for individual threads. Modify the heap dump files to contain per thread heap profile data. This change is incompatible with the existing pprof, which will require enhancements to read and process the enriched data.
37 lines
1.4 KiB
C
37 lines
1.4 KiB
C
/******************************************************************************/
|
|
#ifdef JEMALLOC_H_TYPES
|
|
|
|
#endif /* JEMALLOC_H_TYPES */
|
|
/******************************************************************************/
|
|
#ifdef JEMALLOC_H_STRUCTS
|
|
|
|
#endif /* JEMALLOC_H_STRUCTS */
|
|
/******************************************************************************/
|
|
#ifdef JEMALLOC_H_EXTERNS
|
|
|
|
void *huge_malloc(arena_t *arena, size_t size, bool zero);
|
|
void *huge_palloc(arena_t *arena, size_t size, size_t alignment, bool zero);
|
|
bool huge_ralloc_no_move(void *ptr, size_t oldsize, size_t size,
|
|
size_t extra);
|
|
void *huge_ralloc(arena_t *arena, void *ptr, size_t oldsize, size_t size,
|
|
size_t extra, size_t alignment, bool zero, bool try_tcache_dalloc);
|
|
#ifdef JEMALLOC_JET
|
|
typedef void (huge_dalloc_junk_t)(void *, size_t);
|
|
extern huge_dalloc_junk_t *huge_dalloc_junk;
|
|
#endif
|
|
void huge_dalloc(void *ptr);
|
|
size_t huge_salloc(const void *ptr);
|
|
prof_tctx_t *huge_prof_tctx_get(const void *ptr);
|
|
void huge_prof_tctx_set(const void *ptr, prof_tctx_t *tctx);
|
|
bool huge_boot(void);
|
|
void huge_prefork(void);
|
|
void huge_postfork_parent(void);
|
|
void huge_postfork_child(void);
|
|
|
|
#endif /* JEMALLOC_H_EXTERNS */
|
|
/******************************************************************************/
|
|
#ifdef JEMALLOC_H_INLINES
|
|
|
|
#endif /* JEMALLOC_H_INLINES */
|
|
/******************************************************************************/
|