diff options
Diffstat (limited to 'kern/kmem.c')
-rw-r--r-- | kern/kmem.c | 72 |
1 files changed, 34 insertions, 38 deletions
diff --git a/kern/kmem.c b/kern/kmem.c index bd2e1d56..f5c74a96 100644 --- a/kern/kmem.c +++ b/kern/kmem.c @@ -51,6 +51,7 @@ #include <kern/init.h> #include <kern/list.h> +#include <kern/log.h> #include <kern/log2.h> #include <kern/kmem.h> #include <kern/kmem_i.h> @@ -449,7 +450,7 @@ kmem_cache_error(struct kmem_cache *cache, void *buf, int error, void *arg) { struct kmem_buftag *buftag; - printf("kmem: error: cache: %s, buffer: %p\n", cache->name, buf); + printf_ln("kmem: error: cache: %s, buffer: %p", cache->name, buf); switch(error) { case KMEM_ERR_INVALID: @@ -1107,7 +1108,7 @@ fast_free: } void -kmem_cache_info(struct kmem_cache *cache) +kmem_cache_info(struct kmem_cache *cache, log_print_fn_t print_fn) { char flags_str[64]; @@ -1117,28 +1118,23 @@ kmem_cache_info(struct kmem_cache *cache) mutex_lock(&cache->lock); - printf("kmem: flags: 0x%x%s\n" - "kmem: obj_size: %zu\n" - "kmem: align: %zu\n" - "kmem: buf_size: %zu\n" - "kmem: bufctl_dist: %zu\n" - "kmem: slab_size: %zu\n" - "kmem: color_max: %zu\n" - "kmem: bufs_per_slab: %lu\n" - "kmem: nr_objs: %lu\n" - "kmem: nr_bufs: %lu\n" - "kmem: nr_slabs: %lu\n" - "kmem: nr_free_slabs: %lu\n" - "kmem: buftag_dist: %zu\n" - "kmem: redzone_pad: %zu\n", - cache->flags, flags_str, cache->obj_size, - cache->align, cache->buf_size, cache->bufctl_dist, - cache->slab_size, cache->color_max, cache->bufs_per_slab, - cache->nr_objs, cache->nr_bufs, cache->nr_slabs, - cache->nr_free_slabs, cache->buftag_dist, cache->redzone_pad); + print_fn("kmem: flags: 0x%x%s", cache->flags, flags_str); + print_fn("kmem: obj_size: %zu", cache->obj_size); + print_fn("kmem: align: %zu", cache->align); + print_fn("kmem: buf_size: %zu", cache->buf_size); + print_fn("kmem: bufctl_dist: %zu", cache->bufctl_dist); + print_fn("kmem: slab_size: %zu", cache->slab_size); + print_fn("kmem: color_max: %zu", cache->color_max); + print_fn("kmem: bufs_per_slab: %lu", cache->bufs_per_slab); + print_fn("kmem: nr_objs: %lu", cache->nr_objs); + print_fn("kmem: nr_bufs: %lu", cache->nr_bufs); + print_fn("kmem: nr_slabs: %lu", cache->nr_slabs); + print_fn("kmem: nr_free_slabs: %lu", cache->nr_free_slabs); + print_fn("kmem: buftag_dist: %zu", cache->buftag_dist); + print_fn("kmem: redzone_pad: %zu", cache->redzone_pad); #ifdef KMEM_USE_CPU_LAYER - printf("kmem: cpu_pool_size: %d\n", cache->cpu_pool_type->array_size); + print_fn("kmem: cpu_pool_size: %d", cache->cpu_pool_type->array_size); #endif /* KMEM_USE_CPU_LAYER */ mutex_unlock(&cache->lock); @@ -1175,16 +1171,16 @@ kmem_shell_info(struct shell *shell, int argc, char **argv) (void)shell; if (argc < 2) { - kmem_info(); + kmem_info(printf_ln); } else { cache = kmem_lookup_cache(argv[1]); if (cache == NULL) { - printf("kmem: info: invalid argument\n"); + printf_ln("kmem: info: invalid argument"); return; } - kmem_cache_info(cache); + kmem_cache_info(cache, printf_ln); } } @@ -1383,7 +1379,7 @@ kmem_free(void *ptr, size_t size) } void -kmem_info(void) +kmem_info(log_print_fn_t print_fn) { size_t total_reclaim, total_reclaim_physical, total_reclaim_virtual; size_t total, total_physical, total_virtual; @@ -1397,10 +1393,10 @@ kmem_info(void) total_reclaim_physical = 0; total_reclaim_virtual = 0; - printf("kmem: cache obj slab bufs objs bufs " - " total reclaimable\n" - "kmem: name size size /slab usage count " - " memory memory\n"); + print_fn("kmem: cache obj slab bufs objs bufs " + " total reclaimable"); + print_fn("kmem: name size size /slab usage count " + " memory memory"); mutex_lock(&kmem_cache_list_lock); @@ -1420,18 +1416,18 @@ kmem_info(void) total_reclaim_physical += mem_reclaim; } - printf("kmem: %-19s %6zu %3zuk %4lu %6lu %6lu %7zuk %10zuk\n", - cache->name, cache->obj_size, cache->slab_size >> 10, - cache->bufs_per_slab, cache->nr_objs, cache->nr_bufs, - mem_usage, mem_reclaim); + print_fn("kmem: %-19s %6zu %3zuk %4lu %6lu %6lu %7zuk %10zuk", + cache->name, cache->obj_size, cache->slab_size >> 10, + cache->bufs_per_slab, cache->nr_objs, cache->nr_bufs, + mem_usage, mem_reclaim); mutex_unlock(&cache->lock); } mutex_unlock(&kmem_cache_list_lock); - printf("total: %zuk (phys: %zuk virt: %zuk), " - "reclaim: %zuk (phys: %zuk virt: %zuk)\n", - total, total_physical, total_virtual, - total_reclaim, total_reclaim_physical, total_reclaim_virtual); + print_fn("total: %zuk (phys: %zuk virt: %zuk), " + "reclaim: %zuk (phys: %zuk virt: %zuk)", + total, total_physical, total_virtual, + total_reclaim, total_reclaim_physical, total_reclaim_virtual); } |