bdump revision 1.2 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