xref: /plan9-contrib/rc/bin/kmem (revision a6b1725ca7b1e042260a543522a1c4d8d669625a)
1#!/bin/rc
2# kmem [kernel] - print summary of allocate blocks in running kernel
3rfork e
4if(! ~ $#* 0 1){
5	echo 'usage: kmem [kernel]' >[1=2]
6	exit usage
7}
8
9if(~ $#* 1)
10	binary=$1
11
12echo 'kinit(); blocksummary()' | acid -k -lkernel -lpool -lleak $pid $binary | awk '
13	$1 == "block" {
14		addr=$6
15		size=$3
16		alloc=$4
17		total[alloc] += size
18		count[alloc]++
19	}
20	$1 == "summary" {
21		alloc=$2
22		cnt=$3
23		size=$4
24		total[alloc] += size
25		count[alloc] += cnt
26	}
27	END{
28		for(i in count)
29			printf("%6d %11d %s\n", count[i], total[i], i);
30	}
31' | sort -nr
32