stats: fix memory leakage when adding / deleting interfaces
This fixes two leaks in registering errors in the stats segment.
- The error name created by vlib_register_errors() was not freed.
- Duplicate error names (when interface readded) was added to the vector.
This fix also adds memory usage statistics for the statistics segment
as /mem/statseg/{used, total}
Change-Id: Ife98d5fc5baef5bdae426a5a1eef428af2b9ab8a
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
diff --git a/src/vppinfra/mem_dlmalloc.c b/src/vppinfra/mem_dlmalloc.c
index 99f1c04..7a53a8b 100644
--- a/src/vppinfra/mem_dlmalloc.c
+++ b/src/vppinfra/mem_dlmalloc.c
@@ -383,6 +383,21 @@
clib_warning ("unimp");
}
+void
+mheap_usage (void *heap, clib_mem_usage_t * usage)
+{
+ struct dlmallinfo mi = mspace_mallinfo (heap);
+
+ /* TODO: Fill in some more values */
+ usage->object_count = 0;
+ usage->bytes_total = mi.arena;
+ usage->bytes_overhead = 0;
+ usage->bytes_max = 0;
+ usage->bytes_used = mi.uordblks;
+ usage->bytes_free = mi.fordblks;
+ usage->bytes_free_reclaimed = 0;
+}
+
/* Call serial number for debugger breakpoints. */
uword clib_mem_validate_serial = 0;