Record request size in prof recent entries
This commit is contained in:
@@ -54,8 +54,8 @@ prof_tdata_t *prof_tdata_init(tsd_t *tsd);
|
||||
prof_tdata_t *prof_tdata_reinit(tsd_t *tsd, prof_tdata_t *tdata);
|
||||
|
||||
void prof_alloc_rollback(tsd_t *tsd, prof_tctx_t *tctx, bool updated);
|
||||
void prof_malloc_sample_object(tsd_t *tsd, const void *ptr, size_t usize,
|
||||
prof_tctx_t *tctx);
|
||||
void prof_malloc_sample_object(tsd_t *tsd, const void *ptr, size_t size,
|
||||
size_t usize, prof_tctx_t *tctx);
|
||||
void prof_free_sampled_object(tsd_t *tsd, size_t usize, prof_info_t *prof_info);
|
||||
prof_tctx_t *prof_tctx_create(tsd_t *tsd);
|
||||
#ifdef JEMALLOC_JET
|
||||
|
@@ -126,22 +126,22 @@ prof_alloc_prep(tsd_t *tsd, size_t usize, bool prof_active, bool update) {
|
||||
}
|
||||
|
||||
JEMALLOC_ALWAYS_INLINE void
|
||||
prof_malloc(tsd_t *tsd, const void *ptr, size_t usize, alloc_ctx_t *alloc_ctx,
|
||||
prof_tctx_t *tctx) {
|
||||
prof_malloc(tsd_t *tsd, const void *ptr, size_t size, size_t usize,
|
||||
alloc_ctx_t *alloc_ctx, prof_tctx_t *tctx) {
|
||||
cassert(config_prof);
|
||||
assert(ptr != NULL);
|
||||
assert(usize == isalloc(tsd_tsdn(tsd), ptr));
|
||||
|
||||
if (unlikely((uintptr_t)tctx > (uintptr_t)1U)) {
|
||||
prof_malloc_sample_object(tsd, ptr, usize, tctx);
|
||||
prof_malloc_sample_object(tsd, ptr, size, usize, tctx);
|
||||
} else {
|
||||
prof_tctx_reset(tsd, ptr, alloc_ctx);
|
||||
}
|
||||
}
|
||||
|
||||
JEMALLOC_ALWAYS_INLINE void
|
||||
prof_realloc(tsd_t *tsd, const void *ptr, size_t usize, prof_tctx_t *tctx,
|
||||
bool prof_active, const void *old_ptr, size_t old_usize,
|
||||
prof_realloc(tsd_t *tsd, const void *ptr, size_t size, size_t usize,
|
||||
prof_tctx_t *tctx, bool prof_active, const void *old_ptr, size_t old_usize,
|
||||
prof_info_t *old_prof_info) {
|
||||
bool sampled, old_sampled, moved;
|
||||
|
||||
@@ -168,7 +168,7 @@ prof_realloc(tsd_t *tsd, const void *ptr, size_t usize, prof_tctx_t *tctx,
|
||||
moved = (ptr != old_ptr);
|
||||
|
||||
if (unlikely(sampled)) {
|
||||
prof_malloc_sample_object(tsd, ptr, usize, tctx);
|
||||
prof_malloc_sample_object(tsd, ptr, size, usize, tctx);
|
||||
} else if (moved) {
|
||||
prof_tctx_reset(tsd, ptr, NULL);
|
||||
} else if (unlikely(old_sampled)) {
|
||||
|
@@ -2,7 +2,7 @@
|
||||
#define JEMALLOC_INTERNAL_PROF_RECENT_EXTERNS_H
|
||||
|
||||
bool prof_recent_alloc_prepare(tsd_t *tsd, prof_tctx_t *tctx);
|
||||
void prof_recent_alloc(tsd_t *tsd, edata_t *edata, size_t usize);
|
||||
void prof_recent_alloc(tsd_t *tsd, edata_t *edata, size_t size);
|
||||
void prof_recent_alloc_reset(tsd_t *tsd, edata_t *edata);
|
||||
bool prof_recent_init();
|
||||
void edata_prof_recent_alloc_init(edata_t *edata);
|
||||
|
@@ -213,7 +213,7 @@ struct prof_recent_s {
|
||||
nstime_t dalloc_time;
|
||||
|
||||
prof_recent_t *next;
|
||||
size_t usize;
|
||||
size_t size;
|
||||
prof_tctx_t *alloc_tctx;
|
||||
edata_t *alloc_edata; /* NULL means allocation has been freed. */
|
||||
prof_tctx_t *dalloc_tctx;
|
||||
|
Reference in New Issue
Block a user