From: Simon Kuenzer Date: Thu, 12 Nov 2020 23:16:37 +0000 (+0100) Subject: lib/ukallocbbuddy: Instrumentation for statistics X-Git-Tag: RELEASE-0.6~170 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=6735c28894a6fd7c1663fec0d820b1c065c53f54;p=unikraft%2Funikraft.git lib/ukallocbbuddy: Instrumentation for statistics Instruments the allocator to record allocation statistics. Signed-off-by: Simon Kuenzer Reviewed-by: Cezar Craciunoiu Tested-by: Unikraft CI GitHub-Pull-Request: #229 --- diff --git a/lib/ukallocbbuddy/bbuddy.c b/lib/ukallocbbuddy/bbuddy.c index e708a01a7..582f760d9 100644 --- a/lib/ukallocbbuddy/bbuddy.c +++ b/lib/ukallocbbuddy/bbuddy.c @@ -280,11 +280,14 @@ static void *bbuddy_palloc(struct uk_alloc *a, unsigned long num_pages) } map_alloc(b, (uintptr_t)alloc_ch, 1UL << order); + uk_alloc_stats_count_palloc(a, (void *) alloc_ch, num_pages); return ((void *)alloc_ch); no_memory: uk_pr_warn("%"__PRIuptr": Cannot handle palloc request of order %"__PRIsz": Out of memory\n", (uintptr_t)a, order); + + uk_alloc_stats_count_penomem(a, num_pages); errno = ENOMEM; return NULL; } @@ -297,6 +300,8 @@ static void bbuddy_pfree(struct uk_alloc *a, void *obj, unsigned long num_pages) unsigned long mask; UK_ASSERT(a != NULL); + + uk_alloc_stats_count_pfree(a, obj, num_pages); b = (struct uk_bbpalloc *)&a->priv; size_t order = (size_t)num_pages_to_order(num_pages);