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