diff options
-rw-r--r-- | libglusterfs/src/mem-pool.c | 16 | ||||
-rw-r--r-- | libglusterfs/src/mem-pool.h | 9 | ||||
-rw-r--r-- | libglusterfs/src/statedump.c | 1 |
3 files changed, 15 insertions, 11 deletions
diff --git a/libglusterfs/src/mem-pool.c b/libglusterfs/src/mem-pool.c index c5ff58f4f1b..b233995b0b1 100644 --- a/libglusterfs/src/mem-pool.c +++ b/libglusterfs/src/mem-pool.c @@ -39,8 +39,8 @@ gf_mem_acct_enable_set (void *data) } int -gf_mem_set_acct_info (xlator_t *xl, char **alloc_ptr, - size_t size, uint32_t type) +gf_mem_set_acct_info (xlator_t *xl, char **alloc_ptr, size_t size, + uint32_t type, const char *typestr) { char *ptr = NULL; @@ -58,6 +58,8 @@ gf_mem_set_acct_info (xlator_t *xl, char **alloc_ptr, LOCK(&xl->mem_acct.rec[type].lock); { + if (!xl->mem_acct.rec[type].typestr) + xl->mem_acct.rec[type].typestr = typestr; xl->mem_acct.rec[type].size += size; xl->mem_acct.rec[type].num_allocs++; xl->mem_acct.rec[type].total_allocs++; @@ -87,7 +89,7 @@ gf_mem_set_acct_info (xlator_t *xl, char **alloc_ptr, void * -__gf_calloc (size_t nmemb, size_t size, uint32_t type) +__gf_calloc (size_t nmemb, size_t size, uint32_t type, const char *typestr) { size_t tot_size = 0; size_t req_size = 0; @@ -108,13 +110,13 @@ __gf_calloc (size_t nmemb, size_t size, uint32_t type) gf_msg_nomem ("", GF_LOG_ALERT, tot_size); return NULL; } - gf_mem_set_acct_info (xl, &ptr, req_size, type); + gf_mem_set_acct_info (xl, &ptr, req_size, type, typestr); return (void *)ptr; } void * -__gf_malloc (size_t size, uint32_t type) +__gf_malloc (size_t size, uint32_t type, const char *typestr) { size_t tot_size = 0; char *ptr = NULL; @@ -132,7 +134,7 @@ __gf_malloc (size_t size, uint32_t type) gf_msg_nomem ("", GF_LOG_ALERT, tot_size); return NULL; } - gf_mem_set_acct_info (xl, &ptr, size, type); + gf_mem_set_acct_info (xl, &ptr, size, type, typestr); return (void *)ptr; } @@ -174,7 +176,7 @@ __gf_realloc (void *ptr, size_t size) * about the casting to and forth from void ** to * char **. */ - gf_mem_set_acct_info (xl, &new_ptr, size, type); + gf_mem_set_acct_info (xl, &new_ptr, size, type, NULL); return (void *)new_ptr; } diff --git a/libglusterfs/src/mem-pool.h b/libglusterfs/src/mem-pool.h index 9ffeef4da30..a6adb6cc8c2 100644 --- a/libglusterfs/src/mem-pool.h +++ b/libglusterfs/src/mem-pool.h @@ -40,6 +40,7 @@ struct mem_acct { }; struct mem_acct_rec { + const char *typestr; size_t size; size_t max_size; uint32_t num_allocs; @@ -50,10 +51,10 @@ struct mem_acct_rec { void * -__gf_calloc (size_t cnt, size_t size, uint32_t type); +__gf_calloc (size_t cnt, size_t size, uint32_t type, const char *typestr); void * -__gf_malloc (size_t size, uint32_t type); +__gf_malloc (size_t size, uint32_t type, const char *typestr); void * __gf_realloc (void *ptr, size_t size); @@ -114,9 +115,9 @@ void* __gf_default_realloc (void *oldptr, size_t size) ptr = (void *)0xeeeeeeee; \ } -#define GF_CALLOC(nmemb, size, type) __gf_calloc (nmemb, size, type) +#define GF_CALLOC(nmemb, size, type) __gf_calloc (nmemb, size, type, #type) -#define GF_MALLOC(size, type) __gf_malloc (size, type) +#define GF_MALLOC(size, type) __gf_malloc (size, type, #type) #define GF_REALLOC(ptr, size) __gf_realloc (ptr, size) diff --git a/libglusterfs/src/statedump.c b/libglusterfs/src/statedump.c index 5b41e86791a..f9e8a0c1ba4 100644 --- a/libglusterfs/src/statedump.c +++ b/libglusterfs/src/statedump.c @@ -238,6 +238,7 @@ gf_proc_dump_xlator_mem_info (xlator_t *xl) gf_proc_dump_add_section ("%s.%s - usage-type %d memusage", xl->type, xl->name, i); + gf_proc_dump_write ("type", "%s", xl->mem_acct.rec[i].typestr); gf_proc_dump_write ("size", "%u", xl->mem_acct.rec[i].size); gf_proc_dump_write ("num_allocs", "%u", xl->mem_acct.rec[i].num_allocs); |