]> xenbits.xensource.com Git - unikraft/unikraft.git/commitdiff
lib/ukallocbbuddy: Instrumentation for statistics
authorSimon Kuenzer <simon.kuenzer@neclab.eu>
Thu, 12 Nov 2020 23:16:37 +0000 (00:16 +0100)
committerUnikraft <monkey@unikraft.io>
Tue, 22 Jun 2021 13:14:08 +0000 (13:14 +0000)
Instruments the allocator to record allocation statistics.

Signed-off-by: Simon Kuenzer <simon.kuenzer@neclab.eu>
Reviewed-by: Cezar Craciunoiu <cezar.craciunoiu@gmail.com>
Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Pull-Request: #229

lib/ukallocbbuddy/bbuddy.c

index e708a01a78a79755052197de00d879cf455ed651..582f760d9e3435bb7d8dc121db9d1b3b9d777b28 100644 (file)
@@ -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);