mirror of
http://git.haproxy.org/git/haproxy.git
synced 2026-02-15 03:22:14 +02:00
BUG/MINOR: memprof: properly account for differences for realloc()
The realloc() function checks if the size grew or reduced in order to count an allocation or a free, but it does so with the absolute (new or old) value instead of the difference, resulting in realloc() often being credited for allocating too much. No backport is needed.
This commit is contained in:
@@ -281,10 +281,10 @@ void *realloc(void *ptr, size_t size)
|
||||
bin = memprof_get_bin(__builtin_return_address(0));
|
||||
if (size > size_before) {
|
||||
_HA_ATOMIC_ADD(&bin->alloc_calls, 1);
|
||||
_HA_ATOMIC_ADD(&bin->alloc_tot, size);
|
||||
_HA_ATOMIC_ADD(&bin->alloc_tot, size - size_before);
|
||||
} else if (size < size_before) {
|
||||
_HA_ATOMIC_ADD(&bin->free_calls, 1);
|
||||
_HA_ATOMIC_ADD(&bin->free_tot, size_before);
|
||||
_HA_ATOMIC_ADD(&bin->free_tot, size_before - size);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user