diff --git a/src/server.h b/src/server.h index e3bba8aced7670215f17d0f9816bb9535ca4c840..f7aff36b16740983ff9c61ad20db42a961283aac 100644 --- a/src/server.h +++ b/src/server.h @@ -882,13 +882,13 @@ typedef struct rdbSaveInfo { #define RDB_SAVE_INFO_INIT {-1,0,"000000000000000000000000000000",-1} -typedef struct malloc_stats { +struct malloc_stats { size_t zmalloc_used; size_t process_rss; size_t allocator_allocated; size_t allocator_active; size_t allocator_resident; -} malloc_stats; +}; /*----------------------------------------------------------------------------- * Global server state @@ -995,7 +995,7 @@ struct redisServer { long long slowlog_entry_id; /* SLOWLOG current entry ID */ long long slowlog_log_slower_than; /* SLOWLOG time limit (to get logged) */ unsigned long slowlog_max_len; /* SLOWLOG max number of items logged */ - malloc_stats cron_malloc_stats; /* sampled in serverCron(). */ + struct malloc_stats cron_malloc_stats; /* sampled in serverCron(). */ long long stat_net_input_bytes; /* Bytes read from network. */ long long stat_net_output_bytes; /* Bytes written to network. */ size_t stat_rdb_cow_bytes; /* Copy on write bytes during RDB saving. */ diff --git a/src/zmalloc.h b/src/zmalloc.h index 3c926bcbeac8b3d8746987558f8542e9466f8e5f..49b33b8833f8be4449c844290bed55454f1faf57 100644 --- a/src/zmalloc.h +++ b/src/zmalloc.h @@ -63,6 +63,11 @@ #ifndef ZMALLOC_LIB #define ZMALLOC_LIB "libc" +#ifdef __GLIBC__ +#include +#define HAVE_MALLOC_SIZE 1 +#define zmalloc_size(p) malloc_usable_size(p) +#endif #endif /* We can enable the Redis defrag capabilities only if we are using Jemalloc