xref: /original-bsd/sys/scripts/bdump (revision 3705696b)
1# Count the number of buffers in the buffer cache for which
2# bp->b_flags & $bufcount_match is non-0.
3#
4#	@(#)bdump	8.1 (Berkeley) 06/10/93
5
6set $bufcount_match=0x020000
7define bufcount
8
9	set $i = 0
10	set $num = 0
11
12	while ($i < 512)
13
14		set $bp = bufhash[$i].b_forw
15		while ($bp != bufhash[$i].b_back)
16			if ($bp->b_flags & $bufcount_match)
17				set $num++
18			end
19			set $bp = $bp->b_forw
20		end
21		# printf "bucket: %d cumulative %d\n", $i, $num
22		set $i++
23	end
24	printf "Number of buffers with flags & %x in hash table: %d\n", $bufcount_match, $num
25end
26
27# Dump the entire buffer cache.
28
29define bufdump
30
31	set $i = 0
32	set $num = 0
33
34	while ($i < 512)
35
36		set $bp = bufhash[$i].b_forw
37		while ($bp != bufhash[$i].b_back)
38			printf "bp=0x%x flags=0x%x vp=0x%x lblkno=0x%x blkno=0x%x\n", $bp, $bp->b_flags, $bp->b_vp, $bp->b_lblkno, $bp->b_blkno
39			set $num++
40			set $bp = $bp->b_forw
41		end
42		set $i++
43	end
44	printf "Number of buffers in hash table: %d\n", $num
45end
46
47# Dump the buffers in a particular hashbucket.
48# usage: dumpbucket bucketnumber
49define dumpbucket
50
51	set $num = 0
52	set $bp = bufhash[$arg0].b_forw
53	while ($bp != bufhash[$arg0].b_back)
54		printf "bp=0x%x flags=0x%x vp=0x%x lblkno=0x%x blkno=0x%x\n", $bp, $bp->b_flags, $bp->b_vp, $bp->b_lblkno, $bp->b_blkno
55		set $num++
56		set $bp = $bp->b_forw
57	end
58	printf "Number of buffers in bucket %d: %d\n", $arg0, $num
59end
60
61# Dump the buffers on the empty and age queues
62
63define bdumpnew
64
65	set $i = 0
66	set $num = 0
67
68	while ($i < 4)
69
70		printf "Queue %d\n", $i
71		set $bp = (struct buf *)bufqueues[$i].qe_next
72		while ($bp)
73			printf "bp=0x%x flags=0x%x vp=0x%x lbn=%d size=0x%x\n", $bp, $bp->b_flags, $bp->b_vp, $bp->b_lblkno, $bp->b_bufsize
74			set $num++
75			set $bp = (struct buf *)$bp->b_freelist.qe_next
76		end
77		set $i++
78	end
79	printf "Number of buffers in free lists: %d\n", $num
80end
81
82define dumpchain
83
84	set $bp = (struct buf *)$arg0
85	while ($bp)
86		printf "bp=0x%x flags=0x%x bn=0x%x lbn=%d count=%d size=%d\n", $bp, $bp->b_flags, $bp->b_blkno, $bp->b_lblkno, $bp->b_bcount, $bp->b_bufsize
87		set $bp = (struct buf *)$bp->b_vnbufs.qe_next
88	end
89end
90
91define dumpq
92
93	set $num = 0
94
95	printf "Queue %d\n", $arg0
96	set $bp = (struct buf *)bufqueues[$arg0].qe_next
97	while ($bp)
98		printf "bp=0x%x flags=0x%x vp=0x%x lbn=%d size=0x%x\n", $bp, $bp->b_flags, $bp->b_vp, $bp->b_lblkno, $bp->b_bufsize
99		set $num++
100		set $bp = (struct buf *)$bp->b_freelist.qe_next
101	end
102	printf "Number of buffers on queue %d: %d\n", $arg0, $num
103end
104