提交 79ba4240 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

^F to print kmem stats

上级 64d15277
......@@ -124,6 +124,7 @@ int kmalign(void **p, int align, u64 size);
void kmalignfree(void *, int align, u64 size);
void verifyfree(char *ptr, u64 nbytes);
void kminit(void);
void kmemprint(void);
// kbd.c
void kbdintr(void);
......
......@@ -282,6 +282,9 @@ consoleintr(int (*getc)(void))
profenable = 0;
cprintf("prof disabled\n");
break;
case C('F'): // kmem stats
kmemprint();
break;
default:
if(c != 0 && input.e-input.r < INPUT_BUF){
c = (c == '\r') ? '\n' : c;
......
......@@ -136,18 +136,26 @@ kfree_pool(struct kmem *m, char *v)
mtunlabel(mtrace_label_block, r);
}
static void __attribute__((unused))
kmemprint(void)
static void
kmemprint_pool(struct kmem *km)
{
cprintf("free pages: [ ");
cprintf("pool %s: [ ", &km[0].name[1]);
for (u32 i = 0; i < NCPU; i++)
if (i == mycpu()->id)
cprintf("<%lu> ", kmems[i].nfree.load());
cprintf("<%lu> ", km[i].nfree.load());
else
cprintf("%lu ", kmems[i].nfree.load());
cprintf("%lu ", km[i].nfree.load());
cprintf("]\n");
}
void
kmemprint()
{
kmemprint_pool(kmems);
for (int i = 0; i < slab_type_max; i++)
kmemprint_pool(slabmem[i]);
}
static char*
kalloc_pool(struct kmem *km)
{
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论