1- From d383b50ea710a070faf0d893985dd942027b39b0 Mon Sep 17 00:00:00 2001
1+ From 19cf5078ed7d013e2d06e6d13ea98cf5cb71b33e Mon Sep 17 00:00:00 2001
22From: Vladimir Zhigulin <scripath96@gmail.com>
33Date: Wed, 27 Dec 2023 15:23:18 +0100
44Subject: [PATCH] vppinfra: collect heap stats in constant time
@@ -18,10 +18,10 @@ Signed-off-by: Vladimir Zhigulin <scripath96@gmail.com>
1818Change-Id: Iaa7a5dda19ce9fd0a32d55f4dd16bc62d4b0b480
1919---
2020 src/vlib/stats/provider_mem.c | 8 +----
21- src/vppinfra/dlmalloc.c | 66 ++++++++++++++++++++++++++++++++---
21+ src/vppinfra/dlmalloc.c | 67 ++++++++++++++++++++++++++++++++---
2222 src/vppinfra/dlmalloc.h | 5 ++-
2323 src/vppinfra/mem_dlmalloc.c | 13 ++-----
24- 4 files changed, 69 insertions(+), 23 deletions(-)
24+ 4 files changed, 70 insertions(+), 23 deletions(-)
2525
2626diff --git a/src/vlib/stats/provider_mem.c b/src/vlib/stats/provider_mem.c
2727index f3a3f5d3e..bc3801f2c 100644
@@ -59,7 +59,7 @@ index f3a3f5d3e..bc3801f2c 100644
5959 /* Create symlink */
6060 vlib_stats_add_symlink (idx, STAT_MEM_USED, "/mem/%s/used", heap->name);
6161diff --git a/src/vppinfra/dlmalloc.c b/src/vppinfra/dlmalloc.c
62- index 5cdc6f6cc..1fcd02741 100644
62+ index 5cdc6f6cc..4d8b92d20 100644
6363--- a/src/vppinfra/dlmalloc.c
6464+++ b/src/vppinfra/dlmalloc.c
6565@@ -1179,6 +1179,9 @@ struct malloc_state {
@@ -183,21 +183,22 @@ index 5cdc6f6cc..1fcd02741 100644
183183 }
184184 }
185185 }
186- @@ -4663,8 +4707,11 @@ void* mspace_memalign(mspace msp, size_t alignment, size_t bytes) {
186+ @@ -4663,8 +4707,12 @@ void* mspace_memalign(mspace msp, size_t alignment, size_t bytes) {
187187 USAGE_ERROR_ACTION(ms,ms);
188188 return 0;
189189 }
190190- if (alignment <= MALLOC_ALIGNMENT)
191191- return mspace_malloc(msp, bytes);
192192+ if (alignment <= MALLOC_ALIGNMENT) {
193193+ void *rv = mspace_malloc(msp, bytes);
194- + ms->fast_stats_used_sz += chunksize(mem2chunk(rv));
194+ + if (rv)
195+ + ms->fast_stats_used_sz += chunksize(mem2chunk(rv));
195196+ return rv;
196197+ }
197198 return internal_memalign(ms, alignment, bytes);
198199 }
199200
200- @@ -4797,12 +4844 ,21 @@ size_t mspace_set_footprint_limit(mspace msp, size_t bytes) {
201+ @@ -4797,12 +4845 ,21 @@ size_t mspace_set_footprint_limit(mspace msp, size_t bytes) {
201202
202203 #if !NO_MALLINFO
203204 __clib_nosanitize_addr
@@ -282,5 +283,5 @@ index de7591139..696738e86 100644
282283 }
283284
284285- -
285- 2.45.2
286+ 2.49.0
286287
0 commit comments