arena: let the kernel call kmemstat()
For debugging. The user's interface is #mem/kmemstat.
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
diff --git a/kern/drivers/dev/mem.c b/kern/drivers/dev/mem.c
index 8ea2189..946452e 100644
--- a/kern/drivers/dev/mem.c
+++ b/kern/drivers/dev/mem.c
@@ -335,6 +335,13 @@
return sza;
}
+void kmemstat(void)
+{
+ struct sized_alloc *sza = build_kmemstat();
+
+ printk("%s", sza->buf);
+}
+
static struct chan *mem_open(struct chan *c, int omode)
{
if (c->qid.type & QTDIR) {
diff --git a/kern/include/arena.h b/kern/include/arena.h
index 1950cc2..a6e64d5 100644
--- a/kern/include/arena.h
+++ b/kern/include/arena.h
@@ -111,6 +111,7 @@
size_t arena_amt_free(struct arena *arena);
size_t arena_amt_total(struct arena *arena);
+void kmemstat(void);
/* All lists that track the existence of arenas, slabs, and the connections
* between them are tracked by a global qlock. For the most part, slabs/arenas