diff options
author | Jason Ekstrand <[email protected]> | 2019-09-12 18:42:21 -0500 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-05-13 23:36:44 +0000 |
commit | 38e68db778439c34ebb876273fcf9139764abc80 (patch) | |
tree | e4db1be90aaf90baa320bd2b4a801a1be6d4449c /src | |
parent | adbcef37d2d1f838ef24a4ab1f4332cc87b5fdad (diff) |
util/vma: Add a debug print helper
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5019>
Diffstat (limited to 'src')
-rw-r--r-- | src/util/vma.c | 20 | ||||
-rw-r--r-- | src/util/vma.h | 4 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/util/vma.c b/src/util/vma.c index f17ec0c08f1..dddc3fe187c 100644 --- a/src/util/vma.c +++ b/src/util/vma.c @@ -22,6 +22,7 @@ */ #include <stdlib.h> +#include <inttypes.h> #include "util/u_math.h" #include "util/vma.h" @@ -304,3 +305,22 @@ util_vma_heap_free(struct util_vma_heap *heap, util_vma_heap_validate(heap); } + +void +util_vma_heap_print(struct util_vma_heap *heap, FILE *fp, + const char *tab, uint64_t total_size) +{ + fprintf(fp, "%sutil_vma_heap:\n", tab); + + uint64_t total_free = 0; + util_vma_foreach_hole(hole, heap) { + fprintf(fp, "%s hole: offset = %"PRIu64" (0x%"PRIx64", " + "size = %"PRIu64" (0x%"PRIx64")\n", + tab, hole->offset, hole->offset, hole->size, hole->size); + total_free += hole->size; + } + assert(total_free <= total_size); + fprintf(fp, "%s%"PRIu64"B (0x%"PRIx64") free (%.2f%% full)\n", + tab, total_free, total_free, + ((double)(total_size - total_free) / (double)total_size) * 100); +} diff --git a/src/util/vma.h b/src/util/vma.h index 58b4f8bf941..9bc058a2c58 100644 --- a/src/util/vma.h +++ b/src/util/vma.h @@ -25,6 +25,7 @@ #define _UTIL_VMA_H #include <stdint.h> +#include <stdio.h> #include "list.h" @@ -55,6 +56,9 @@ bool util_vma_heap_alloc_addr(struct util_vma_heap *heap, void util_vma_heap_free(struct util_vma_heap *heap, uint64_t offset, uint64_t size); +void util_vma_heap_print(struct util_vma_heap *heap, FILE *fp, + const char *tab, uint64_t total_size); + #ifdef __cplusplus } /* extern C */ #endif |