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