bdump revision 1.2
127702724Smrg#	$NetBSD: bdump,v 1.2 1997/02/12 23:35:06 gwr Exp $
227702724Smrg
327702724Smrg# Count the number of buffers in the buffer cache for which
427702724Smrg# bp->b_flags & $bufcount_match is non-0.
527702724Smrg#
627702724Smrg#	@(#)bdump	8.1 (Berkeley) 6/10/93
727702724Smrg
827702724Smrgset $bufcount_match=0x020000
927702724Smrgdefine bufcount
1027702724Smrg
1127702724Smrg	set $i = 0
1227702724Smrg	set $num = 0
1327702724Smrg
1427702724Smrg	while ($i < 512)
1527702724Smrg
1627702724Smrg		set $bp = bufhash[$i].b_forw
1727702724Smrg		while ($bp != bufhash[$i].b_back)
1827702724Smrg			if ($bp->b_flags & $bufcount_match)
1927702724Smrg				set $num++
2027702724Smrg			end
2127702724Smrg			set $bp = $bp->b_forw
2227702724Smrg		end
2327702724Smrg		# printf "bucket: %d cumulative %d\n", $i, $num
2427702724Smrg		set $i++
2527702724Smrg	end
2627702724Smrg	printf "Number of buffers with flags & %x in hash table: %d\n", $bufcount_match, $num
2727702724Smrgend
2827702724Smrg
2927702724Smrg# Dump the entire buffer cache.
3027702724Smrg
3127702724Smrgdefine bufdump
3227702724Smrg
3327702724Smrg	set $i = 0
3427702724Smrg	set $num = 0
3527702724Smrg
3627702724Smrg	while ($i < 512)
3727702724Smrg
3827702724Smrg		set $bp = bufhash[$i].b_forw
3927702724Smrg		while ($bp != bufhash[$i].b_back)
4027702724Smrg			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
4127702724Smrg			set $num++
4227702724Smrg			set $bp = $bp->b_forw
4327702724Smrg		end
4427702724Smrg		set $i++
4527702724Smrg	end
4627702724Smrg	printf "Number of buffers in hash table: %d\n", $num
4727702724Smrgend
4827702724Smrg
4927702724Smrg# Dump the buffers in a particular hashbucket.
5027702724Smrg# usage: dumpbucket bucketnumber
5127702724Smrgdefine dumpbucket
5227702724Smrg
5327702724Smrg	set $num = 0
5427702724Smrg	set $bp = bufhash[$arg0].b_forw
5527702724Smrg	while ($bp != bufhash[$arg0].b_back)
5627702724Smrg		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
5727702724Smrg		set $num++
5827702724Smrg		set $bp = $bp->b_forw
5927702724Smrg	end
6027702724Smrg	printf "Number of buffers in bucket %d: %d\n", $arg0, $num
6127702724Smrgend
6227702724Smrg
6327702724Smrg# Dump the buffers on the empty and age queues
6427702724Smrg
6527702724Smrgdefine bdumpnew
6627702724Smrg
6727702724Smrg	set $i = 0
6827702724Smrg	set $num = 0
6927702724Smrg
7027702724Smrg	while ($i < 4)
7127702724Smrg
7227702724Smrg		printf "Queue %d\n", $i
7327702724Smrg		set $bp = (struct buf *)bufqueues[$i].qe_next
7427702724Smrg		while ($bp)
7527702724Smrg			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
7627702724Smrg			set $num++
7727702724Smrg			set $bp = (struct buf *)$bp->b_freelist.qe_next
7827702724Smrg		end
7927702724Smrg		set $i++
8027702724Smrg	end
8127702724Smrg	printf "Number of buffers in free lists: %d\n", $num
8227702724Smrgend
8327702724Smrg
8427702724Smrgdefine dumpchain
8527702724Smrg
8627702724Smrg	set $bp = (struct buf *)$arg0
8727702724Smrg	while ($bp)
8827702724Smrg		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
8927702724Smrg		set $bp = (struct buf *)$bp->b_vnbufs.qe_next
9027702724Smrg	end
9127702724Smrgend
9227702724Smrg
9327702724Smrgdefine dumpq
9427702724Smrg
9527702724Smrg	set $num = 0
9627702724Smrg
9727702724Smrg	printf "Queue %d\n", $arg0
9827702724Smrg	set $bp = (struct buf *)bufqueues[$arg0].qe_next
9927702724Smrg	while ($bp)
10027702724Smrg		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
10127702724Smrg		set $num++
10227702724Smrg		set $bp = (struct buf *)$bp->b_freelist.qe_next
10327702724Smrg	end
10427702724Smrg	printf "Number of buffers on queue %d: %d\n", $arg0, $num
10527702724Smrgend
10627702724Smrg