xref: /netbsd-src/sys/gdbscripts/bdump (revision 69506806eacbba15fa925fd119e17998442604f0)
1*69506806Sgwr#	$NetBSD: bdump,v 1.2 1997/02/12 23:35:06 gwr Exp $
2*69506806Sgwr
348faabf3Sgwr# Count the number of buffers in the buffer cache for which
448faabf3Sgwr# bp->b_flags & $bufcount_match is non-0.
548faabf3Sgwr#
648faabf3Sgwr#	@(#)bdump	8.1 (Berkeley) 6/10/93
748faabf3Sgwr
848faabf3Sgwrset $bufcount_match=0x020000
948faabf3Sgwrdefine bufcount
1048faabf3Sgwr
1148faabf3Sgwr	set $i = 0
1248faabf3Sgwr	set $num = 0
1348faabf3Sgwr
1448faabf3Sgwr	while ($i < 512)
1548faabf3Sgwr
1648faabf3Sgwr		set $bp = bufhash[$i].b_forw
1748faabf3Sgwr		while ($bp != bufhash[$i].b_back)
1848faabf3Sgwr			if ($bp->b_flags & $bufcount_match)
1948faabf3Sgwr				set $num++
2048faabf3Sgwr			end
2148faabf3Sgwr			set $bp = $bp->b_forw
2248faabf3Sgwr		end
2348faabf3Sgwr		# printf "bucket: %d cumulative %d\n", $i, $num
2448faabf3Sgwr		set $i++
2548faabf3Sgwr	end
2648faabf3Sgwr	printf "Number of buffers with flags & %x in hash table: %d\n", $bufcount_match, $num
2748faabf3Sgwrend
2848faabf3Sgwr
2948faabf3Sgwr# Dump the entire buffer cache.
3048faabf3Sgwr
3148faabf3Sgwrdefine bufdump
3248faabf3Sgwr
3348faabf3Sgwr	set $i = 0
3448faabf3Sgwr	set $num = 0
3548faabf3Sgwr
3648faabf3Sgwr	while ($i < 512)
3748faabf3Sgwr
3848faabf3Sgwr		set $bp = bufhash[$i].b_forw
3948faabf3Sgwr		while ($bp != bufhash[$i].b_back)
4048faabf3Sgwr			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
4148faabf3Sgwr			set $num++
4248faabf3Sgwr			set $bp = $bp->b_forw
4348faabf3Sgwr		end
4448faabf3Sgwr		set $i++
4548faabf3Sgwr	end
4648faabf3Sgwr	printf "Number of buffers in hash table: %d\n", $num
4748faabf3Sgwrend
4848faabf3Sgwr
4948faabf3Sgwr# Dump the buffers in a particular hashbucket.
5048faabf3Sgwr# usage: dumpbucket bucketnumber
5148faabf3Sgwrdefine dumpbucket
5248faabf3Sgwr
5348faabf3Sgwr	set $num = 0
5448faabf3Sgwr	set $bp = bufhash[$arg0].b_forw
5548faabf3Sgwr	while ($bp != bufhash[$arg0].b_back)
5648faabf3Sgwr		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
5748faabf3Sgwr		set $num++
5848faabf3Sgwr		set $bp = $bp->b_forw
5948faabf3Sgwr	end
6048faabf3Sgwr	printf "Number of buffers in bucket %d: %d\n", $arg0, $num
6148faabf3Sgwrend
6248faabf3Sgwr
6348faabf3Sgwr# Dump the buffers on the empty and age queues
6448faabf3Sgwr
6548faabf3Sgwrdefine bdumpnew
6648faabf3Sgwr
6748faabf3Sgwr	set $i = 0
6848faabf3Sgwr	set $num = 0
6948faabf3Sgwr
7048faabf3Sgwr	while ($i < 4)
7148faabf3Sgwr
7248faabf3Sgwr		printf "Queue %d\n", $i
7348faabf3Sgwr		set $bp = (struct buf *)bufqueues[$i].qe_next
7448faabf3Sgwr		while ($bp)
7548faabf3Sgwr			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
7648faabf3Sgwr			set $num++
7748faabf3Sgwr			set $bp = (struct buf *)$bp->b_freelist.qe_next
7848faabf3Sgwr		end
7948faabf3Sgwr		set $i++
8048faabf3Sgwr	end
8148faabf3Sgwr	printf "Number of buffers in free lists: %d\n", $num
8248faabf3Sgwrend
8348faabf3Sgwr
8448faabf3Sgwrdefine dumpchain
8548faabf3Sgwr
8648faabf3Sgwr	set $bp = (struct buf *)$arg0
8748faabf3Sgwr	while ($bp)
8848faabf3Sgwr		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
8948faabf3Sgwr		set $bp = (struct buf *)$bp->b_vnbufs.qe_next
9048faabf3Sgwr	end
9148faabf3Sgwrend
9248faabf3Sgwr
9348faabf3Sgwrdefine dumpq
9448faabf3Sgwr
9548faabf3Sgwr	set $num = 0
9648faabf3Sgwr
9748faabf3Sgwr	printf "Queue %d\n", $arg0
9848faabf3Sgwr	set $bp = (struct buf *)bufqueues[$arg0].qe_next
9948faabf3Sgwr	while ($bp)
10048faabf3Sgwr		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
10148faabf3Sgwr		set $num++
10248faabf3Sgwr		set $bp = (struct buf *)$bp->b_freelist.qe_next
10348faabf3Sgwr	end
10448faabf3Sgwr	printf "Number of buffers on queue %d: %d\n", $arg0, $num
10548faabf3Sgwrend
106