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