Subject: Re: Another serious bug in NetBSD-1.6.1
To: David Laight <david@l8s.co.uk>
From: Brian Buhrow <buhrow@lothlorien.nfbcal.org>
List: tech-kern
Date: 03/13/2003 15:18:08
	Hello David et al.  I want to appologize in advance for the seemingly
i386 slant on this particular message.  I'm preparing for an international
trip, and I wanted to get this out to the group before I left.  Thus, it's
not quite as clean as I'd like.  Below is the disassembled listing of the
genfs_putpages function in I386 form.  David asked which section of the
code was executing when the trap was called, and I hope this answers that
question.  (I would have found the particular lines in C if I had had more
time.)
In any case, I'm running:
/*      $NetBSD: genfs_vnops.c,v 1.63.2.2 2002/10/23 12:18:12 lukem Exp $

The listing of the assembly from the particular panicing kernel in question
is below.  Perhaps this will shed light on the problem.  
-Brian

%gdb netbsd.2
GNU gdb 5.0nb1
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386--netbsdelf"...(no debugging symbols found)...
(gdb) target kcore netbsd.2.core
panic: trap
#0  0x1 in ?? ()
(gdb) up
#1  0xc030cb4f in cpu_reboot ()
(gdb) 
#2  0xc028375e in panic ()
(gdb) 
#3  0xc02752c1 in lockmgr ()
(gdb) 
#4  0xc02a5a78 in genfs_lock ()
(gdb) 
#5  0xc02a4b5a in VOP_LOCK ()
(gdb) 
#6  0xc02a431d in vn_lock ()
(gdb) 
#7  0xc029df7c in vget ()
(gdb) 
#8  0xc0245733 in ffs_sync ()
(gdb) 
#9  0xc02a0242 in sys_sync ()
(gdb) 
#10 0xc029f262 in vfs_shutdown ()
(gdb) 
#11 0xc030cb27 in cpu_reboot ()
(gdb) 
#12 0xc028375e in panic ()
(gdb) 
#13 0xc03134ce in trap ()
(gdb) 
#14 0xc0100bf7 in calltrap ()
(gdb) 
#15 0xc02a7021 in genfs_putpages ()
(gdb) disass
Dump of assembler code for function genfs_putpages:
0xc02a6bd8 <genfs_putpages>:    push   %ebp
0xc02a6bd9 <genfs_putpages+1>:  mov    %esp,%ebp
0xc02a6bdb <genfs_putpages+3>:  sub    $0xcc,%esp
0xc02a6be1 <genfs_putpages+9>:  push   %edi
0xc02a6be2 <genfs_putpages+10>: push   %esi
0xc02a6be3 <genfs_putpages+11>: push   %ebx
0xc02a6be4 <genfs_putpages+12>: mov    0x8(%ebp),%eax
0xc02a6be7 <genfs_putpages+15>: mov    0x4(%eax),%edx
0xc02a6bea <genfs_putpages+18>: mov    %edx,0xffffff8c(%ebp)
---Type <return> to continue, or q <return> to quit---
0xc02a6bed <genfs_putpages+21>: mov    0x8(%eax),%ecx
0xc02a6bf0 <genfs_putpages+24>: mov    0xc(%eax),%ebx
0xc02a6bf3 <genfs_putpages+27>: mov    %ecx,0xffffff84(%ebp)
0xc02a6bf6 <genfs_putpages+30>: mov    %ebx,0xffffff88(%ebp)
0xc02a6bf9 <genfs_putpages+33>: mov    0x10(%eax),%edx
0xc02a6bfc <genfs_putpages+36>: mov    0x14(%eax),%ecx
0xc02a6bff <genfs_putpages+39>: mov    %edx,0xffffff7c(%ebp)
0xc02a6c05 <genfs_putpages+45>: mov    %ecx,0xffffff80(%ebp)
0xc02a6c08 <genfs_putpages+48>: mov    0x18(%eax),%eax
0xc02a6c0b <genfs_putpages+51>: mov    %eax,0xffffff70(%ebp)
---Type <return> to continue, or q <return> to quit---
0xc02a6c11 <genfs_putpages+57>: sub    $0x40,%esp
0xc02a6c14 <genfs_putpages+60>: mov    %esp,0xffffff64(%ebp)
0xc02a6c1a <genfs_putpages+66>: mov    %eax,0xffffff50(%ebp)
0xc02a6c20 <genfs_putpages+72>: shrl   0xffffff50(%ebp)
0xc02a6c26 <genfs_putpages+78>: xorb   $0x1,0xffffff50(%ebp)
0xc02a6c2d <genfs_putpages+85>: andl   $0x1,0xffffff50(%ebp)
0xc02a6c34 <genfs_putpages+92>: mov    0xc0607630,%eax
0xc02a6c39 <genfs_putpages+97>: cmp    %eax,0xc05b5fe8
0xc02a6c3f <genfs_putpages+103>:        sete   %al
0xc02a6c42 <genfs_putpages+106>:        movzbl %al,%ecx
---Type <return> to continue, or q <return> to quit---
0xc02a6c45 <genfs_putpages+109>:        mov    %ecx,0xffffff4c(%ebp)
0xc02a6c4b <genfs_putpages+115>:        mov    0xffffff8c(%ebp),%ebx
0xc02a6c4e <genfs_putpages+118>:        cmpl   $0x0,0x10(%ebx)
0xc02a6c52 <genfs_putpages+122>:        jne    0xc02a6cb0 <genfs_putpages+216>
0xc02a6c54 <genfs_putpages+124>:        mov    0xc0608fac,%ecx
0xc02a6c5a <genfs_putpages+130>:        mov    %ecx,%eax
0xc02a6c5c <genfs_putpages+132>:        or     0xc0608ef8,%eax
0xc02a6c62 <genfs_putpages+138>:        mov    %eax,0xc0608fac
0xc02a6c67 <genfs_putpages+143>:        cmpl   $0x0,0x50(%ebx)
0xc02a6c6b <genfs_putpages+147>:        jne    0xc02a6c93 <genfs_putpages+187>
---Type <return> to continue, or q <return> to quit---
0xc02a6c6d <genfs_putpages+149>:        mov    0x20(%ebx),%eax
0xc02a6c70 <genfs_putpages+152>:        test   $0x40,%ah
0xc02a6c73 <genfs_putpages+155>:        je     0xc02a6c93 <genfs_putpages+187>
0xc02a6c75 <genfs_putpages+157>:        and    $0xbf,%ah
0xc02a6c78 <genfs_putpages+160>:        mov    %eax,0x20(%ebx)
0xc02a6c7b <genfs_putpages+163>:        mov    0x54(%ebx),%edx
0xc02a6c7e <genfs_putpages+166>:        test   %edx,%edx
0xc02a6c80 <genfs_putpages+168>:        je     0xc02a6c88 <genfs_putpages+176>
0xc02a6c82 <genfs_putpages+170>:        mov    0x58(%ebx),%eax
0xc02a6c85 <genfs_putpages+173>:        mov    %eax,0x58(%edx)
---Type <return> to continue, or q <return> to quit---
0xc02a6c88 <genfs_putpages+176>:        mov    0xffffff8c(%ebp),%eax
0xc02a6c8b <genfs_putpages+179>:        mov    0x58(%eax),%edx
0xc02a6c8e <genfs_putpages+182>:        mov    0x54(%eax),%eax
0xc02a6c91 <genfs_putpages+185>:        mov    %eax,(%edx)
0xc02a6c93 <genfs_putpages+187>:        mov    %ecx,0xc0608fac
0xc02a6c99 <genfs_putpages+193>:        not    %ecx
0xc02a6c9b <genfs_putpages+195>:        mov    0xc0607ec4,%eax
0xc02a6ca0 <genfs_putpages+200>:        test   %ecx,%eax
0xc02a6ca2 <genfs_putpages+202>:        je     0xc02a6ca9 <genfs_putpages+209>
0xc02a6ca4 <genfs_putpages+204>:        call   0xc0101e08 <eintrnames>
---Type <return> to continue, or q <return> to quit---
0xc02a6ca9 <genfs_putpages+209>:        xor    %eax,%eax
0xc02a6cab <genfs_putpages+211>:        jmp    0xc02a759c <genfs_putpages+2500>
0xc02a6cb0 <genfs_putpages+216>:        movl   $0x0,0xffffff6c(%ebp)
0xc02a6cba <genfs_putpages+226>:        mov    0xc0608fac,%edx
0xc02a6cc0 <genfs_putpages+232>:        mov    %edx,%eax
0xc02a6cc2 <genfs_putpages+234>:        or     0xc0608ef8,%eax
0xc02a6cc8 <genfs_putpages+240>:        mov    %eax,0xc0608fac
0xc02a6ccd <genfs_putpages+245>:        mov    0xffffff8c(%ebp),%ecx
0xc02a6cd0 <genfs_putpages+248>:        cmpl   $0x0,0x24(%ecx)
0xc02a6cd4 <genfs_putpages+252>:        sete   %al
---Type <return> to continue, or q <return> to quit---
0xc02a6cd7 <genfs_putpages+255>:        movzbl %al,%ebx
0xc02a6cda <genfs_putpages+258>:        mov    %ebx,0xffffff5c(%ebp)
0xc02a6ce0 <genfs_putpages+264>:        mov    %edx,0xc0608fac
0xc02a6ce6 <genfs_putpages+270>:        not    %edx
0xc02a6ce8 <genfs_putpages+272>:        mov    0xc0607ec4,%eax
0xc02a6ced <genfs_putpages+277>:        test   %edx,%eax
0xc02a6cef <genfs_putpages+279>:        je     0xc02a6cf6 <genfs_putpages+286>
0xc02a6cf1 <genfs_putpages+281>:        call   0xc0101e08 <eintrnames>
0xc02a6cf6 <genfs_putpages+286>:        mov    0xffffff84(%ebp),%eax
0xc02a6cf9 <genfs_putpages+289>:        mov    0xffffff88(%ebp),%edx
---Type <return> to continue, or q <return> to quit---
0xc02a6cfc <genfs_putpages+292>:        mov    %eax,0xffffff74(%ebp)
0xc02a6d02 <genfs_putpages+298>:        mov    %edx,0xffffff78(%ebp)
0xc02a6d08 <genfs_putpages+304>:        mov    0xffffff7c(%ebp),%eax
0xc02a6d0e <genfs_putpages+310>:        or     0xffffff80(%ebp),%eax
0xc02a6d11 <genfs_putpages+313>:        je     0xc02a6d1e <genfs_putpages+326>
0xc02a6d13 <genfs_putpages+315>:        mov    0xffffff70(%ebp),%edx
0xc02a6d19 <genfs_putpages+321>:        test   $0x10,%dl
0xc02a6d1c <genfs_putpages+324>:        je     0xc02a6d33 <genfs_putpages+347>
0xc02a6d1e <genfs_putpages+326>:        mov    0xc047bcf0,%ecx
0xc02a6d24 <genfs_putpages+332>:        mov    0xc047bcf4,%ebx
---Type <return> to continue, or q <return> to quit---
0xc02a6d2a <genfs_putpages+338>:        mov    %ecx,0xffffff7c(%ebp)
0xc02a6d30 <genfs_putpages+344>:        mov    %ebx,0xffffff80(%ebp)
0xc02a6d33 <genfs_putpages+347>:        movl   $0x0,0xffffff58(%ebp)
0xc02a6d3d <genfs_putpages+357>:        mov    0xffffff8c(%ebp),%ebx
0xc02a6d40 <genfs_putpages+360>:        mov    0x10(%ebx),%eax
0xc02a6d43 <genfs_putpages+363>:        mov    %eax,%esi
0xc02a6d45 <genfs_putpages+365>:        mov    %eax,%edi
0xc02a6d47 <genfs_putpages+367>:        sar    $0x1f,%edi
0xc02a6d4a <genfs_putpages+370>:        mov    0xffffff7c(%ebp),%eax
0xc02a6d50 <genfs_putpages+376>:        mov    0xffffff80(%ebp),%edx
---Type <return> to continue, or q <return> to quit---
0xc02a6d53 <genfs_putpages+379>:        sub    0xffffff84(%ebp),%eax
0xc02a6d56 <genfs_putpages+382>:        sbb    0xffffff88(%ebp),%edx
0xc02a6d59 <genfs_putpages+385>:        shrd   $0xc,%edx,%eax
0xc02a6d5d <genfs_putpages+389>:        sar    $0xc,%edx
0xc02a6d60 <genfs_putpages+392>:        mov    %eax,0xffffff3c(%ebp)
0xc02a6d66 <genfs_putpages+398>:        mov    %edx,0xffffff40(%ebp)
0xc02a6d6c <genfs_putpages+404>:        mov    $0x4,%ecx
0xc02a6d71 <genfs_putpages+409>:        mul    %ecx,%eax
0xc02a6d73 <genfs_putpages+411>:        mov    %eax,%ecx
0xc02a6d75 <genfs_putpages+413>:        mov    %edx,%ebx
---Type <return> to continue, or q <return> to quit---
0xc02a6d77 <genfs_putpages+415>:        mov    0xffffff40(%ebp),%eax
0xc02a6d7d <genfs_putpages+421>:        shl    $0x2,%eax
0xc02a6d80 <genfs_putpages+424>:        add    %eax,%ebx
0xc02a6d82 <genfs_putpages+426>:        cmp    %ebx,%edi
0xc02a6d84 <genfs_putpages+428>:        jg     0xc02a6d96 <genfs_putpages+446>
0xc02a6d86 <genfs_putpages+430>:        jne    0xc02a6d8c <genfs_putpages+436>
0xc02a6d88 <genfs_putpages+432>:        cmp    %ecx,%esi
0xc02a6d8a <genfs_putpages+434>:        ja     0xc02a6d96 <genfs_putpages+446>
0xc02a6d8c <genfs_putpages+436>:        movl   $0x1,0xffffff58(%ebp)
0xc02a6d96 <genfs_putpages+446>:        movl   $0x20,0xffffff68(%ebp)
---Type <return> to continue, or q <return> to quit---
0xc02a6da0 <genfs_putpages+456>:        cmpl   $0x0,0xffffff4c(%ebp)
0xc02a6da7 <genfs_putpages+463>:        je     0xc02a6db3 <genfs_putpages+475>
0xc02a6da9 <genfs_putpages+465>:        movl   $0x10,0xffffff68(%ebp)
0xc02a6db3 <genfs_putpages+475>:        mov    0xffffff8c(%ebp),%edx
0xc02a6db6 <genfs_putpages+478>:        mov    %edx,0xffffffe8(%ebp)
0xc02a6db9 <genfs_putpages+481>:        movl   $0xffffffff,0xffffffec(%ebp)
0xc02a6dc0 <genfs_putpages+488>:        movl   $0xffffffff,0xfffffff0(%ebp)
0xc02a6dc7 <genfs_putpages+495>:        movw   $0x1,0xfffffff4(%ebp)
0xc02a6dcd <genfs_putpages+501>:        mov    %edx,0xffffffb4(%ebp)
0xc02a6dd0 <genfs_putpages+504>:        movl   $0xffffffff,0xffffffb8(%ebp)
---Type <return> to continue, or q <return> to quit---
0xc02a6dd7 <genfs_putpages+511>:        movl   $0xffffffff,0xffffffbc(%ebp)
0xc02a6dde <genfs_putpages+518>:        movw   $0x1,0xffffffc0(%ebp)
0xc02a6de4 <genfs_putpages+524>:        cmpl   $0x0,0xffffff58(%ebp)
0xc02a6deb <genfs_putpages+531>:        je     0xc02a6e38 <genfs_putpages+608>
0xc02a6ded <genfs_putpages+533>:        mov    0x8(%edx),%esi
0xc02a6df0 <genfs_putpages+536>:        movl   $0x0,0xffffffa8(%ebp)
0xc02a6df7 <genfs_putpages+543>:        mov    0xc(%edx),%eax
0xc02a6dfa <genfs_putpages+546>:        mov    %eax,0xffffffac(%ebp)
0xc02a6dfd <genfs_putpages+549>:        mov    0xc(%edx),%eax
0xc02a6e00 <genfs_putpages+552>:        lea    0xffffff98(%ebp),%ecx
---Type <return> to continue, or q <return> to quit---
0xc02a6e03 <genfs_putpages+555>:        mov    %ecx,(%eax)
0xc02a6e05 <genfs_putpages+557>:        lea    0xffffffa8(%ebp),%ebx
0xc02a6e08 <genfs_putpages+560>:        mov    %ebx,0xc(%edx)
0xc02a6e0b <genfs_putpages+563>:        mov    0xc05b5fe8,%edx
0xc02a6e11 <genfs_putpages+569>:        mov    0xfc(%edx),%eax
0xc02a6e17 <genfs_putpages+575>:        lea    0x1(%eax),%ecx
0xc02a6e1a <genfs_putpages+578>:        mov    %ecx,0xfc(%edx)
0xc02a6e20 <genfs_putpages+584>:        test   %eax,%eax
0xc02a6e22 <genfs_putpages+586>:        jne    0xc02a6e51 <genfs_putpages+633>
0xc02a6e24 <genfs_putpages+588>:        testb  $0x4,0x30(%edx)
---Type <return> to continue, or q <return> to quit---
0xc02a6e28 <genfs_putpages+592>:        jne    0xc02a6e51 <genfs_putpages+633>
0xc02a6e2a <genfs_putpages+594>:        add    $0xfffffff4,%esp
0xc02a6e2d <genfs_putpages+597>:        push   %edx
0xc02a6e2e <genfs_putpages+598>:        call   0xc02fd6c0 <uvm_swapin>
0xc02a6e33 <genfs_putpages+603>:        jmp    0xc02a6e4e <genfs_putpages+630>
0xc02a6e35 <genfs_putpages+605>:        lea    0x0(%esi),%esi
0xc02a6e38 <genfs_putpages+608>:        add    $0xfffffffc,%esp
0xc02a6e3b <genfs_putpages+611>:        mov    0xffffff84(%ebp),%eax
0xc02a6e3e <genfs_putpages+614>:        mov    0xffffff88(%ebp),%edx
0xc02a6e41 <genfs_putpages+617>:        push   %edx
---Type <return> to continue, or q <return> to quit---
0xc02a6e42 <genfs_putpages+618>:        push   %eax
0xc02a6e43 <genfs_putpages+619>:        mov    0xffffff8c(%ebp),%edx
0xc02a6e46 <genfs_putpages+622>:        push   %edx
0xc02a6e47 <genfs_putpages+623>:        call   0xc0303ce0 <uvm_pagelookup>
0xc02a6e4c <genfs_putpages+628>:        mov    %eax,%esi
0xc02a6e4e <genfs_putpages+630>:        add    $0x10,%esp
0xc02a6e51 <genfs_putpages+633>:        movl   $0x0,0xffffff60(%ebp)
0xc02a6e5b <genfs_putpages+643>:        mov    0xffffff70(%ebp),%ecx
0xc02a6e61 <genfs_putpages+649>:        mov    %ecx,0xffffff48(%ebp)
0xc02a6e67 <genfs_putpages+655>:        andl   $0x1,0xffffff48(%ebp)
---Type <return> to continue, or q <return> to quit---
0xc02a6e6e <genfs_putpages+662>:        jmp    0xc02a7425 <genfs_putpages+2125>
0xc02a6e73 <genfs_putpages+667>:        nop    
0xc02a6e74 <genfs_putpages+668>:        mov    0x24(%esi),%eax
0xc02a6e77 <genfs_putpages+671>:        cmp    %eax,0xffffff88(%ebp)
0xc02a6e7a <genfs_putpages+674>:        jg     0xc02a73c4 <genfs_putpages+2028>
0xc02a6e80 <genfs_putpages+680>:        jne    0xc02a6e8e <genfs_putpages+694>
0xc02a6e82 <genfs_putpages+682>:        mov    0xffffff84(%ebp),%ebx
0xc02a6e85 <genfs_putpages+685>:        cmp    0x20(%esi),%ebx
0xc02a6e88 <genfs_putpages+688>:        ja     0xc02a73c4 <genfs_putpages+2028>
0xc02a6e8e <genfs_putpages+694>:        cmp    %eax,0xffffff80(%ebp)
---Type <return> to continue, or q <return> to quit---
0xc02a6e91 <genfs_putpages+697>:        jg     0xc02a6ea8 <genfs_putpages+720>
0xc02a6e93 <genfs_putpages+699>:        jne    0xc02a73c4 <genfs_putpages+2028>
0xc02a6e99 <genfs_putpages+705>:        mov    0xffffff7c(%ebp),%eax
0xc02a6e9f <genfs_putpages+711>:        cmp    0x20(%esi),%eax
0xc02a6ea2 <genfs_putpages+714>:        jbe    0xc02a73c4 <genfs_putpages+2028>
0xc02a6ea8 <genfs_putpages+720>:        movzwl 0x28(%esi),%eax
0xc02a6eac <genfs_putpages+724>:        mov    %eax,%ebx
0xc02a6eae <genfs_putpages+726>:        test   $0x30,%bl
0xc02a6eb1 <genfs_putpages+729>:        jne    0xc02a73c4 <genfs_putpages+2028>
0xc02a6eb7 <genfs_putpages+735>:        mov    0x20(%esi),%edx
---Type <return> to continue, or q <return> to quit---
0xc02a6eba <genfs_putpages+738>:        mov    0x24(%esi),%ecx
0xc02a6ebd <genfs_putpages+741>:        mov    %edx,0xffffff74(%ebp)
0xc02a6ec3 <genfs_putpages+747>:        mov    %ecx,0xffffff78(%ebp)
0xc02a6ec9 <genfs_putpages+753>:        jmp    0xc02a6f30 <genfs_putpages+856>
0xc02a6ecb <genfs_putpages+755>:        nop    
0xc02a6ecc <genfs_putpages+756>:        test   %esi,%esi
0xc02a6ece <genfs_putpages+758>:        je     0xc02a6edb <genfs_putpages+771>
0xc02a6ed0 <genfs_putpages+760>:        movzwl 0x28(%esi),%eax
0xc02a6ed4 <genfs_putpages+764>:        mov    %eax,%ebx
0xc02a6ed6 <genfs_putpages+766>:        test   $0x30,%bl
---Type <return> to continue, or q <return> to quit---
0xc02a6ed9 <genfs_putpages+769>:        je     0xc02a6f30 <genfs_putpages+856>
0xc02a6edb <genfs_putpages+771>:        addl   $0x1000,0xffffff74(%ebp)
0xc02a6ee5 <genfs_putpages+781>:        adcl   $0x0,0xffffff78(%ebp)
0xc02a6eec <genfs_putpages+788>:        mov    0xffffff78(%ebp),%ecx
0xc02a6ef2 <genfs_putpages+794>:        cmp    %ecx,0xffffff80(%ebp)
0xc02a6ef5 <genfs_putpages+797>:        jg     0xc02a6f14 <genfs_putpages+828>
0xc02a6ef7 <genfs_putpages+799>:        mov    %ecx,%ebx
0xc02a6ef9 <genfs_putpages+801>:        cmp    %ebx,0xffffff80(%ebp)
0xc02a6efc <genfs_putpages+804>:        jne    0xc02a7425 <genfs_putpages+2125>
0xc02a6f02 <genfs_putpages+810>:        mov    0xffffff74(%ebp),%eax
---Type <return> to continue, or q <return> to quit---
0xc02a6f08 <genfs_putpages+816>:        cmp    %eax,0xffffff7c(%ebp)
0xc02a6f0e <genfs_putpages+822>:        jbe    0xc02a7425 <genfs_putpages+2125>
0xc02a6f14 <genfs_putpages+828>:        add    $0xfffffffc,%esp
0xc02a6f17 <genfs_putpages+831>:        mov    0xffffff74(%ebp),%edx
0xc02a6f1d <genfs_putpages+837>:        mov    0xffffff78(%ebp),%ecx
0xc02a6f23 <genfs_putpages+843>:        push   %ecx
0xc02a6f24 <genfs_putpages+844>:        push   %edx
0xc02a6f25 <genfs_putpages+845>:        mov    0xffffff8c(%ebp),%ecx
0xc02a6f28 <genfs_putpages+848>:        push   %ecx
0xc02a6f29 <genfs_putpages+849>:        jmp    0xc02a741b <genfs_putpages+2115>
---Type <return> to continue, or q <return> to quit---
0xc02a6f2e <genfs_putpages+854>:        mov    %esi,%esi
0xc02a6f30 <genfs_putpages+856>:        xor    %ecx,%ecx
0xc02a6f32 <genfs_putpages+858>:        mov    0xc05b5fe8,%eax
0xc02a6f37 <genfs_putpages+863>:        mov    0x34(%eax),%eax
0xc02a6f3a <genfs_putpages+866>:        mov    0x8(%eax),%eax
0xc02a6f3d <genfs_putpages+869>:        test   $0x2,%al
0xc02a6f3f <genfs_putpages+871>:        je     0xc02a6f4a <genfs_putpages+882>
0xc02a6f41 <genfs_putpages+873>:        mov    0xffffff4c(%ebp),%ecx
0xc02a6f47 <genfs_putpages+879>:        xor    $0x1,%ecx
0xc02a6f4a <genfs_putpages+882>:        test   $0x1,%bl
---Type <return> to continue, or q <return> to quit---
0xc02a6f4d <genfs_putpages+885>:        jne    0xc02a6f57 <genfs_putpages+895>
0xc02a6f4f <genfs_putpages+887>:        test   %ecx,%ecx
0xc02a6f51 <genfs_putpages+889>:        je     0xc02a6fe0 <genfs_putpages+1032>
0xc02a6f57 <genfs_putpages+895>:        cmpl   $0x0,0xffffff58(%ebp)
0xc02a6f5e <genfs_putpages+902>:        je     0xc02a6f78 <genfs_putpages+928>
0xc02a6f60 <genfs_putpages+904>:        mov    0x14(%esi),%eax
0xc02a6f63 <genfs_putpages+907>:        mov    %eax,0xffffffe0(%ebp)
0xc02a6f66 <genfs_putpages+910>:        mov    %esi,0xffffffdc(%ebp)
0xc02a6f69 <genfs_putpages+913>:        mov    0x14(%esi),%eax
0xc02a6f6c <genfs_putpages+916>:        lea    0xffffffcc(%ebp),%ebx
---Type <return> to continue, or q <return> to quit---
0xc02a6f6f <genfs_putpages+919>:        mov    %ebx,(%eax)
0xc02a6f71 <genfs_putpages+921>:        lea    0xffffffdc(%ebp),%eax
0xc02a6f74 <genfs_putpages+924>:        mov    %eax,0x14(%esi)
0xc02a6f77 <genfs_putpages+927>:        nop    
0xc02a6f78 <genfs_putpages+928>:        test   %ecx,%ecx
0xc02a6f7a <genfs_putpages+930>:        je     0xc02a6f8c <genfs_putpages+948>
0xc02a6f7c <genfs_putpages+932>:        add    $0xfffffff4,%esp
0xc02a6f7f <genfs_putpages+935>:        push   $0x0
0xc02a6f81 <genfs_putpages+937>:        call   0xc027bd94 <preempt>
0xc02a6f86 <genfs_putpages+942>:        add    $0x10,%esp
---Type <return> to continue, or q <return> to quit---
0xc02a6f89 <genfs_putpages+945>:        jmp    0xc02a6fac <genfs_putpages+980>
0xc02a6f8b <genfs_putpages+947>:        nop    
0xc02a6f8c <genfs_putpages+948>:        orb    $0x2,0x28(%esi)
0xc02a6f90 <genfs_putpages+952>:        add    $0xfffffff4,%esp
0xc02a6f93 <genfs_putpages+955>:        mov    0xffffff8c(%ebp),%edx
0xc02a6f96 <genfs_putpages+958>:        push   %edx
0xc02a6f97 <genfs_putpages+959>:        push   $0x0
0xc02a6f99 <genfs_putpages+961>:        push   $0xc047bcdf
0xc02a6f9e <genfs_putpages+966>:        push   $0x204
0xc02a6fa3 <genfs_putpages+971>:        push   %esi
---Type <return> to continue, or q <return> to quit---
0xc02a6fa4 <genfs_putpages+972>:        call   0xc027b780 <ltsleep>
0xc02a6fa9 <genfs_putpages+977>:        add    $0x20,%esp
0xc02a6fac <genfs_putpages+980>:        cmpl   $0x0,0xffffff58(%ebp)
0xc02a6fb3 <genfs_putpages+987>:        je     0xc02a7406 <genfs_putpages+2094>
0xc02a6fb9 <genfs_putpages+993>:        mov    0xffffffdc(%ebp),%esi
0xc02a6fbc <genfs_putpages+996>:        test   %esi,%esi
0xc02a6fbe <genfs_putpages+998>:        je     0xc02a6fc8 <genfs_putpages+1008>
0xc02a6fc0 <genfs_putpages+1000>:       mov    0xffffffe0(%ebp),%eax
0xc02a6fc3 <genfs_putpages+1003>:       mov    %eax,0x14(%esi)
0xc02a6fc6 <genfs_putpages+1006>:       jmp    0xc02a6fd1 <genfs_putpages+1017>
---Type <return> to continue, or q <return> to quit---
0xc02a6fc8 <genfs_putpages+1008>:       mov    0xffffffe0(%ebp),%eax
0xc02a6fcb <genfs_putpages+1011>:       mov    0xffffff8c(%ebp),%ecx
0xc02a6fce <genfs_putpages+1014>:       mov    %eax,0xc(%ecx)
0xc02a6fd1 <genfs_putpages+1017>:       mov    0xffffffe0(%ebp),%edx
0xc02a6fd4 <genfs_putpages+1020>:       mov    0xffffffdc(%ebp),%eax
0xc02a6fd7 <genfs_putpages+1023>:       mov    %eax,(%edx)
0xc02a6fd9 <genfs_putpages+1025>:       jmp    0xc02a7425 <genfs_putpages+2125>
0xc02a6fde <genfs_putpages+1030>:       mov    %esi,%esi
0xc02a6fe0 <genfs_putpages+1032>:       mov    0xffffff70(%ebp),%ecx
0xc02a6fe6 <genfs_putpages+1038>:       mov    %ecx,0xffffff44(%ebp)
---Type <return> to continue, or q <return> to quit---
0xc02a6fec <genfs_putpages+1044>:       andl   $0x8,0xffffff44(%ebp)
0xc02a6ff3 <genfs_putpages+1051>:       je     0xc02a7001 <genfs_putpages+1065>
0xc02a6ff5 <genfs_putpages+1053>:       add    $0xfffffff4,%esp
0xc02a6ff8 <genfs_putpages+1056>:       push   %esi
0xc02a6ff9 <genfs_putpages+1057>:       call   0xc0310e30 <pmap_page_remove>
0xc02a6ffe <genfs_putpages+1062>:       add    $0x10,%esp
0xc02a7001 <genfs_putpages+1065>:       cmpl   $0x0,0xffffff48(%ebp)
0xc02a7008 <genfs_putpages+1072>:       je     0xc02a704c <genfs_putpages+1140>
0xc02a700a <genfs_putpages+1074>:       movl   $0x0,0xffffff54(%ebp)
0xc02a7014 <genfs_putpages+1084>:       add    $0xfffffffc,%esp
---Type <return> to continue, or q <return> to quit---
0xc02a7017 <genfs_putpages+1087>:       push   $0x40
0xc02a7019 <genfs_putpages+1089>:       push   $0x0
0xc02a701b <genfs_putpages+1091>:       push   %esi
0xc02a701c <genfs_putpages+1092>:       call   0xc0311248 <pmap_change_attrs>
0xc02a7021 <genfs_putpages+1097>:       add    $0x10,%esp
0xc02a7024 <genfs_putpages+1100>:       test   %eax,%eax
0xc02a7026 <genfs_putpages+1102>:       jne    0xc02a7033 <genfs_putpages+1115>
0xc02a7028 <genfs_putpages+1104>:       movzwl 0x28(%esi),%eax
0xc02a702c <genfs_putpages+1108>:       mov    %eax,%ebx
0xc02a702e <genfs_putpages+1110>:       test   $0x8,%bl
---Type <return> to continue, or q <return> to quit---
0xc02a7031 <genfs_putpages+1113>:       jne    0xc02a7041 <genfs_putpages+1129>
0xc02a7033 <genfs_putpages+1115>:       movl   $0x1,0xffffff54(%ebp)
0xc02a703d <genfs_putpages+1125>:       movzwl 0x28(%esi),%ebx
0xc02a7041 <genfs_putpages+1129>:       or     $0x8,%ebx
0xc02a7044 <genfs_putpages+1132>:       mov    %bx,0x28(%esi)
0xc02a7048 <genfs_putpages+1136>:       jmp    0xc02a7056 <genfs_putpages+1150>
0xc02a704a <genfs_putpages+1138>:       mov    %esi,%esi
0xc02a704c <genfs_putpages+1140>:       movl   $0x0,0xffffff54(%ebp)
0xc02a7056 <genfs_putpages+1150>:       cmpl   $0x0,0xffffff54(%ebp)
0xc02a705d <genfs_putpages+1157>:       je     0xc02a71f0 <genfs_putpages+1560>
---Type <return> to continue, or q <return> to quit---
0xc02a7063 <genfs_putpages+1163>:       movl   $0x0,0xffffff5c(%ebp)
0xc02a706d <genfs_putpages+1173>:       add    $0xfffffffc,%esp
0xc02a7070 <genfs_putpages+1176>:       mov    $0x200,%eax
0xc02a7075 <genfs_putpages+1181>:       shr    $0x3,%eax
0xc02a7078 <genfs_putpages+1184>:       push   %eax
0xc02a7079 <genfs_putpages+1185>:       push   $0x0
0xc02a707b <genfs_putpages+1187>:       mov    0xffffff64(%ebp),%ebx
0xc02a7081 <genfs_putpages+1193>:       push   %ebx
0xc02a7082 <genfs_putpages+1194>:       call   0xc0444fac <memset>
0xc02a7087 <genfs_putpages+1199>:       orb    $0x1,0x28(%esi)
---Type <return> to continue, or q <return> to quit---
0xc02a708b <genfs_putpages+1203>:       mov    0xffffff74(%ebp),%eax
0xc02a7091 <genfs_putpages+1209>:       mov    0xffffff78(%ebp),%edx
0xc02a7097 <genfs_putpages+1215>:       shrd   $0xc,%edx,%eax
0xc02a709b <genfs_putpages+1219>:       sar    $0xc,%edx
0xc02a709e <genfs_putpages+1222>:       add    $0x10,%esp
0xc02a70a1 <genfs_putpages+1225>:       test   %edx,%edx
0xc02a70a3 <genfs_putpages+1227>:       jl     0xc02a70b1 <genfs_putpages+1241>
0xc02a70a5 <genfs_putpages+1229>:       jne    0xc02a70ac <genfs_putpages+1236>
0xc02a70a7 <genfs_putpages+1231>:       cmp    $0x8,%eax
0xc02a70aa <genfs_putpages+1234>:       jb     0xc02a70b1 <genfs_putpages+1241>
---Type <return> to continue, or q <return> to quit---
0xc02a70ac <genfs_putpages+1236>:       mov    $0x8,%eax
0xc02a70b1 <genfs_putpages+1241>:       mov    %eax,0xffffff90(%ebp)
0xc02a70b4 <genfs_putpages+1244>:       mov    %eax,0xffffff94(%ebp)
0xc02a70b7 <genfs_putpages+1247>:       add    $0xfffffff8,%esp
0xc02a70ba <genfs_putpages+1250>:       push   $0x33
0xc02a70bc <genfs_putpages+1252>:       mov    0xffffff64(%ebp),%eax
0xc02a70c2 <genfs_putpages+1258>:       push   %eax
0xc02a70c3 <genfs_putpages+1259>:       lea    0xffffff94(%ebp),%eax
0xc02a70c6 <genfs_putpages+1262>:       push   %eax
0xc02a70c7 <genfs_putpages+1263>:       addl   $0xfffff000,0xffffff74(%ebp)
---Type <return> to continue, or q <return> to quit---
0xc02a70d1 <genfs_putpages+1273>:       adcl   $0xffffffff,0xffffff78(%ebp)
0xc02a70d8 <genfs_putpages+1280>:       mov    0xffffff74(%ebp),%edx
0xc02a70de <genfs_putpages+1286>:       mov    0xffffff78(%ebp),%ecx
0xc02a70e4 <genfs_putpages+1292>:       push   %ecx
0xc02a70e5 <genfs_putpages+1293>:       push   %edx
0xc02a70e6 <genfs_putpages+1294>:       add    $0x1000,%edx
0xc02a70ec <genfs_putpages+1300>:       adc    $0x0,%ecx
0xc02a70ef <genfs_putpages+1303>:       mov    %edx,0xffffff74(%ebp)
0xc02a70f5 <genfs_putpages+1309>:       mov    %ecx,0xffffff78(%ebp)
0xc02a70fb <genfs_putpages+1315>:       mov    0xffffff8c(%ebp),%ecx
---Type <return> to continue, or q <return> to quit---
0xc02a70fe <genfs_putpages+1318>:       push   %ecx
0xc02a70ff <genfs_putpages+1319>:       call   0xc03082fc <uvn_findpages>
0xc02a7104 <genfs_putpages+1324>:       add    $0x20,%esp
0xc02a7107 <genfs_putpages+1327>:       mov    0xffffff94(%ebp),%eax
0xc02a710a <genfs_putpages+1330>:       test   %eax,%eax
0xc02a710c <genfs_putpages+1332>:       je     0xc02a7175 <genfs_putpages+1437>
0xc02a710e <genfs_putpages+1334>:       add    $0xfffffffc,%esp
0xc02a7111 <genfs_putpages+1337>:       shl    $0x2,%eax
0xc02a7114 <genfs_putpages+1340>:       push   %eax
0xc02a7115 <genfs_putpages+1341>:       mov    0xffffff90(%ebp),%eax
---Type <return> to continue, or q <return> to quit---
0xc02a7118 <genfs_putpages+1344>:       sub    0xffffff94(%ebp),%eax
0xc02a711b <genfs_putpages+1347>:       mov    0xffffff64(%ebp),%ebx
0xc02a7121 <genfs_putpages+1353>:       lea    (%ebx,%eax,4),%eax
0xc02a7124 <genfs_putpages+1356>:       push   %eax
0xc02a7125 <genfs_putpages+1357>:       push   %ebx
0xc02a7126 <genfs_putpages+1358>:       call   0xc0444fec <memmove>
0xc02a712b <genfs_putpages+1363>:       mov    0xffffff94(%ebp),%eax
0xc02a712e <genfs_putpages+1366>:       mov    0xffffff90(%ebp),%edx
0xc02a7131 <genfs_putpages+1369>:       sub    %eax,%edx
0xc02a7133 <genfs_putpages+1371>:       add    $0x10,%esp
---Type <return> to continue, or q <return> to quit---
0xc02a7136 <genfs_putpages+1374>:       cmp    %eax,%edx
0xc02a7138 <genfs_putpages+1376>:       jge    0xc02a7154 <genfs_putpages+1404>
0xc02a713a <genfs_putpages+1378>:       add    $0xfffffffc,%esp
0xc02a713d <genfs_putpages+1381>:       lea    0x0(,%edx,4),%eax
0xc02a7144 <genfs_putpages+1388>:       push   %eax
0xc02a7145 <genfs_putpages+1389>:       push   $0x0
0xc02a7147 <genfs_putpages+1391>:       mov    0xffffff94(%ebp),%eax
0xc02a714a <genfs_putpages+1394>:       shl    $0x2,%eax
0xc02a714d <genfs_putpages+1397>:       add    %ebx,%eax
0xc02a714f <genfs_putpages+1399>:       jmp    0xc02a716c <genfs_putpages+1428>
---Type <return> to continue, or q <return> to quit---
0xc02a7151 <genfs_putpages+1401>:       lea    0x0(%esi),%esi
0xc02a7154 <genfs_putpages+1404>:       add    $0xfffffffc,%esp
0xc02a7157 <genfs_putpages+1407>:       shl    $0x2,%eax
0xc02a715a <genfs_putpages+1410>:       push   %eax
0xc02a715b <genfs_putpages+1411>:       push   $0x0
0xc02a715d <genfs_putpages+1413>:       mov    0xffffff90(%ebp),%eax
0xc02a7160 <genfs_putpages+1416>:       sub    0xffffff94(%ebp),%eax
0xc02a7163 <genfs_putpages+1419>:       mov    0xffffff64(%ebp),%edx
0xc02a7169 <genfs_putpages+1425>:       lea    (%edx,%eax,4),%eax
0xc02a716c <genfs_putpages+1428>:       push   %eax
---Type <return> to continue, or q <return> to quit---
0xc02a716d <genfs_putpages+1429>:       call   0xc0444fac <memset>
0xc02a7172 <genfs_putpages+1434>:       add    $0x10,%esp
0xc02a7175 <genfs_putpages+1437>:       mov    0xffffff94(%ebp),%eax
0xc02a7178 <genfs_putpages+1440>:       shl    $0x2,%eax
0xc02a717b <genfs_putpages+1443>:       mov    0xffffff64(%ebp),%ecx
0xc02a7181 <genfs_putpages+1449>:       mov    %esi,(%eax,%ecx,1)
0xc02a7184 <genfs_putpages+1452>:       mov    $0xf,%eax
0xc02a7189 <genfs_putpages+1457>:       sub    0xffffff94(%ebp),%eax
0xc02a718c <genfs_putpages+1460>:       mov    %eax,0xffffff90(%ebp)
0xc02a718f <genfs_putpages+1463>:       add    $0xfffffff8,%esp
---Type <return> to continue, or q <return> to quit---
0xc02a7192 <genfs_putpages+1466>:       push   $0x13
0xc02a7194 <genfs_putpages+1468>:       mov    0xffffff94(%ebp),%eax
0xc02a7197 <genfs_putpages+1471>:       shl    $0x2,%eax
0xc02a719a <genfs_putpages+1474>:       lea    0x4(%ecx,%eax,1),%eax
0xc02a719e <genfs_putpages+1478>:       push   %eax
0xc02a719f <genfs_putpages+1479>:       lea    0xffffff90(%ebp),%eax
0xc02a71a2 <genfs_putpages+1482>:       push   %eax
0xc02a71a3 <genfs_putpages+1483>:       addl   $0x1000,0xffffff74(%ebp)
0xc02a71ad <genfs_putpages+1493>:       adcl   $0x0,0xffffff78(%ebp)
0xc02a71b4 <genfs_putpages+1500>:       mov    0xffffff74(%ebp),%eax
---Type <return> to continue, or q <return> to quit---
0xc02a71ba <genfs_putpages+1506>:       mov    0xffffff78(%ebp),%edx
0xc02a71c0 <genfs_putpages+1512>:       push   %edx
0xc02a71c1 <genfs_putpages+1513>:       push   %eax
0xc02a71c2 <genfs_putpages+1514>:       add    $0xfffff000,%eax
0xc02a71c7 <genfs_putpages+1519>:       adc    $0xffffffff,%edx
0xc02a71ca <genfs_putpages+1522>:       mov    %eax,0xffffff74(%ebp)
0xc02a71d0 <genfs_putpages+1528>:       mov    %edx,0xffffff78(%ebp)
0xc02a71d6 <genfs_putpages+1534>:       mov    0xffffff8c(%ebp),%edx
0xc02a71d9 <genfs_putpages+1537>:       push   %edx
0xc02a71da <genfs_putpages+1538>:       call   0xc03082fc <uvn_findpages>
---Type <return> to continue, or q <return> to quit---
0xc02a71df <genfs_putpages+1543>:       mov    0xffffff90(%ebp),%eax
0xc02a71e2 <genfs_putpages+1546>:       inc    %eax
0xc02a71e3 <genfs_putpages+1547>:       add    0xffffff94(%ebp),%eax
0xc02a71e6 <genfs_putpages+1550>:       mov    %eax,0xffffff90(%ebp)
0xc02a71e9 <genfs_putpages+1553>:       add    $0x20,%esp
0xc02a71ec <genfs_putpages+1556>:       jmp    0xc02a7206 <genfs_putpages+1582>
0xc02a71ee <genfs_putpages+1558>:       mov    %esi,%esi
0xc02a71f0 <genfs_putpages+1560>:       mov    0xffffff64(%ebp),%ecx
0xc02a71f6 <genfs_putpages+1566>:       mov    %esi,(%ecx)
0xc02a71f8 <genfs_putpages+1568>:       movl   $0x1,0xffffff90(%ebp)
---Type <return> to continue, or q <return> to quit---
0xc02a71ff <genfs_putpages+1575>:       movl   $0x0,0xffffff94(%ebp)
0xc02a7206 <genfs_putpages+1582>:       xor    %edi,%edi
0xc02a7208 <genfs_putpages+1584>:       cmp    0xffffff90(%ebp),%edi
0xc02a720b <genfs_putpages+1587>:       jge    0xc02a72f3 <genfs_putpages+1819>
0xc02a7211 <genfs_putpages+1593>:       lea    0x0(%esi),%esi
0xc02a7214 <genfs_putpages+1596>:       mov    0xffffff64(%ebp),%eax
0xc02a721a <genfs_putpages+1602>:       mov    (%eax,%edi,4),%ebx
0xc02a721d <genfs_putpages+1605>:       cmpl   $0x0,0xffffff58(%ebp)
0xc02a7224 <genfs_putpages+1612>:       je     0xc02a722d <genfs_putpages+1621>
0xc02a7226 <genfs_putpages+1614>:       cmp    0x10(%esi),%ebx
---Type <return> to continue, or q <return> to quit---
0xc02a7229 <genfs_putpages+1617>:       jne    0xc02a722d <genfs_putpages+1621>
0xc02a722b <genfs_putpages+1619>:       mov    %ebx,%esi
0xc02a722d <genfs_putpages+1621>:       mov    0x24(%ebx),%eax
0xc02a7230 <genfs_putpages+1624>:       cmp    %eax,0xffffff88(%ebp)
0xc02a7233 <genfs_putpages+1627>:       jg     0xc02a72e9 <genfs_putpages+1809>
0xc02a7239 <genfs_putpages+1633>:       jne    0xc02a7247 <genfs_putpages+1647>
0xc02a723b <genfs_putpages+1635>:       mov    0xffffff84(%ebp),%edx
0xc02a723e <genfs_putpages+1638>:       cmp    0x20(%ebx),%edx
0xc02a7241 <genfs_putpages+1641>:       ja     0xc02a72e9 <genfs_putpages+1809>
0xc02a7247 <genfs_putpages+1647>:       cmp    %eax,0xffffff80(%ebp)
---Type <return> to continue, or q <return> to quit---
0xc02a724a <genfs_putpages+1650>:       jg     0xc02a7261 <genfs_putpages+1673>
0xc02a724c <genfs_putpages+1652>:       jne    0xc02a72e9 <genfs_putpages+1809>
0xc02a7252 <genfs_putpages+1658>:       mov    0xffffff7c(%ebp),%ecx
0xc02a7258 <genfs_putpages+1664>:       cmp    0x20(%ebx),%ecx
0xc02a725b <genfs_putpages+1667>:       jbe    0xc02a72e9 <genfs_putpages+1809>
0xc02a7261 <genfs_putpages+1673>:       testb  $0x4,0xffffff70(%ebp)
0xc02a7268 <genfs_putpages+1680>:       je     0xc02a7290 <genfs_putpages+1720>
0xc02a726a <genfs_putpages+1682>:       testl  $0x2ffff,0x2c(%ebx)
0xc02a7271 <genfs_putpages+1689>:       jne    0xc02a7290 <genfs_putpages+1720>
0xc02a7273 <genfs_putpages+1691>:       add    $0xfffffffc,%esp
---Type <return> to continue, or q <return> to quit---
0xc02a7276 <genfs_putpages+1694>:       push   $0x20
0xc02a7278 <genfs_putpages+1696>:       push   $0x0
0xc02a727a <genfs_putpages+1698>:       push   %ebx
0xc02a727b <genfs_putpages+1699>:       call   0xc0311248 <pmap_change_attrs>
0xc02a7280 <genfs_putpages+1704>:       add    $0xfffffff4,%esp
0xc02a7283 <genfs_putpages+1707>:       push   %ebx
0xc02a7284 <genfs_putpages+1708>:       call   0xc0303d94 <uvm_pagedeactivate>
0xc02a7289 <genfs_putpages+1713>:       add    $0x20,%esp
0xc02a728c <genfs_putpages+1716>:       jmp    0xc02a72e9 <genfs_putpages+1809>
0xc02a728e <genfs_putpages+1718>:       mov    %esi,%esi
---Type <return> to continue, or q <return> to quit---
0xc02a7290 <genfs_putpages+1720>:       cmpl   $0x0,0xffffff44(%ebp)
0xc02a7297 <genfs_putpages+1727>:       je     0xc02a72e9 <genfs_putpages+1809>
0xc02a7299 <genfs_putpages+1729>:       add    $0xfffffff4,%esp
0xc02a729c <genfs_putpages+1732>:       push   %ebx
0xc02a729d <genfs_putpages+1733>:       call   0xc0310e30 <pmap_page_remove>
0xc02a72a2 <genfs_putpages+1738>:       add    $0x10,%esp
0xc02a72a5 <genfs_putpages+1741>:       movzwl 0x28(%ebx),%eax
0xc02a72a9 <genfs_putpages+1745>:       test   $0x1,%al
0xc02a72ab <genfs_putpages+1747>:       je     0xc02a72d4 <genfs_putpages+1788>
0xc02a72ad <genfs_putpages+1749>:       or     0xffffff68(%ebp),%eax
---Type <return> to continue, or q <return> to quit---
0xc02a72b3 <genfs_putpages+1755>:       mov    %ax,0x28(%ebx)
0xc02a72b7 <genfs_putpages+1759>:       cmpl   $0x0,0xffffff4c(%ebp)
0xc02a72be <genfs_putpages+1766>:       je     0xc02a72e9 <genfs_putpages+1809>
0xc02a72c0 <genfs_putpages+1768>:       incl   0xc060749c
0xc02a72c6 <genfs_putpages+1774>:       add    $0xfffffff4,%esp
0xc02a72c9 <genfs_putpages+1777>:       push   %ebx
0xc02a72ca <genfs_putpages+1778>:       call   0xc0303e40 <uvm_pagedequeue>
0xc02a72cf <genfs_putpages+1783>:       jmp    0xc02a72e6 <genfs_putpages+1806>
0xc02a72d1 <genfs_putpages+1785>:       lea    0x0(%esi),%esi
0xc02a72d4 <genfs_putpages+1788>:       mov    0x10(%ebx),%eax
---Type <return> to continue, or q <return> to quit---
0xc02a72d7 <genfs_putpages+1791>:       mov    %eax,0xffffff60(%ebp)
0xc02a72dd <genfs_putpages+1797>:       add    $0xfffffff4,%esp
0xc02a72e0 <genfs_putpages+1800>:       push   %ebx
0xc02a72e1 <genfs_putpages+1801>:       call   0xc030514c <uvm_pagefree>
0xc02a72e6 <genfs_putpages+1806>:       add    $0x10,%esp
0xc02a72e9 <genfs_putpages+1809>:       inc    %edi
0xc02a72ea <genfs_putpages+1810>:       cmp    0xffffff90(%ebp),%edi
0xc02a72ed <genfs_putpages+1813>:       jl     0xc02a7214 <genfs_putpages+1596>
0xc02a72f3 <genfs_putpages+1819>:       cmpl   $0x0,0xffffff54(%ebp)
0xc02a72fa <genfs_putpages+1826>:       je     0xc02a739f <genfs_putpages+1991>
---Type <return> to continue, or q <return> to quit---
0xc02a7300 <genfs_putpages+1832>:       cmpl   $0x0,0xffffff58(%ebp)
0xc02a7307 <genfs_putpages+1839>:       je     0xc02a7331 <genfs_putpages+1881>
0xc02a7309 <genfs_putpages+1841>:       mov    0x10(%esi),%eax
0xc02a730c <genfs_putpages+1844>:       mov    %eax,0xffffffdc(%ebp)
0xc02a730f <genfs_putpages+1847>:       test   %eax,%eax
0xc02a7311 <genfs_putpages+1849>:       je     0xc02a731c <genfs_putpages+1860>
0xc02a7313 <genfs_putpages+1851>:       lea    0xffffffdc(%ebp),%edx
0xc02a7316 <genfs_putpages+1854>:       mov    %edx,0x14(%eax)
0xc02a7319 <genfs_putpages+1857>:       jmp    0xc02a7325 <genfs_putpages+1869>
0xc02a731b <genfs_putpages+1859>:       nop    
---Type <return> to continue, or q <return> to quit---
0xc02a731c <genfs_putpages+1860>:       lea    0xffffffdc(%ebp),%ebx
0xc02a731f <genfs_putpages+1863>:       mov    0xffffff8c(%ebp),%ecx
0xc02a7322 <genfs_putpages+1866>:       mov    %ebx,0xc(%ecx)
0xc02a7325 <genfs_putpages+1869>:       lea    0xffffffcc(%ebp),%eax
0xc02a7328 <genfs_putpages+1872>:       mov    %eax,0x10(%esi)
0xc02a732b <genfs_putpages+1875>:       lea    0x10(%esi),%edx
0xc02a732e <genfs_putpages+1878>:       mov    %edx,0xffffffe0(%ebp)
0xc02a7331 <genfs_putpages+1881>:       mov    0xffffff8c(%ebp),%ecx
0xc02a7334 <genfs_putpages+1884>:       mov    0x94(%ecx),%eax
0xc02a733a <genfs_putpages+1890>:       mov    (%eax),%eax
---Type <return> to continue, or q <return> to quit---
0xc02a733c <genfs_putpages+1892>:       mov    0xffffff70(%ebp),%ebx
0xc02a7342 <genfs_putpages+1898>:       push   %ebx
0xc02a7343 <genfs_putpages+1899>:       pushl  0xffffff90(%ebp)
0xc02a7346 <genfs_putpages+1902>:       mov    0xffffff64(%ebp),%edx
0xc02a734c <genfs_putpages+1908>:       push   %edx
0xc02a734d <genfs_putpages+1909>:       push   %ecx
0xc02a734e <genfs_putpages+1910>:       mov    0x8(%eax),%eax
0xc02a7351 <genfs_putpages+1913>:       call   *%eax
0xc02a7353 <genfs_putpages+1915>:       mov    %eax,0xffffff6c(%ebp)
0xc02a7359 <genfs_putpages+1921>:       add    $0x10,%esp
---Type <return> to continue, or q <return> to quit---
0xc02a735c <genfs_putpages+1924>:       cmpl   $0x0,0xffffff58(%ebp)
0xc02a7363 <genfs_putpages+1931>:       je     0xc02a7385 <genfs_putpages+1965>
0xc02a7365 <genfs_putpages+1933>:       mov    0xffffffdc(%ebp),%esi
0xc02a7368 <genfs_putpages+1936>:       test   %esi,%esi
0xc02a736a <genfs_putpages+1938>:       je     0xc02a7374 <genfs_putpages+1948>
0xc02a736c <genfs_putpages+1940>:       mov    0xffffffe0(%ebp),%eax
0xc02a736f <genfs_putpages+1943>:       mov    %eax,0x14(%esi)
0xc02a7372 <genfs_putpages+1946>:       jmp    0xc02a737d <genfs_putpages+1957>
0xc02a7374 <genfs_putpages+1948>:       mov    0xffffffe0(%ebp),%eax
0xc02a7377 <genfs_putpages+1951>:       mov    0xffffff8c(%ebp),%ecx
---Type <return> to continue, or q <return> to quit---
0xc02a737a <genfs_putpages+1954>:       mov    %eax,0xc(%ecx)
0xc02a737d <genfs_putpages+1957>:       mov    0xffffffe0(%ebp),%edx
0xc02a7380 <genfs_putpages+1960>:       mov    0xffffffdc(%ebp),%eax
0xc02a7383 <genfs_putpages+1963>:       mov    %eax,(%edx)
0xc02a7385 <genfs_putpages+1965>:       cmpl   $0x0,0xffffff6c(%ebp)
0xc02a738c <genfs_putpages+1972>:       jne    0xc02a7463 <genfs_putpages+2187>
0xc02a7392 <genfs_putpages+1978>:       cmpl   $0x0,0xffffff58(%ebp)
0xc02a7399 <genfs_putpages+1985>:       jne    0xc02a7458 <genfs_putpages+2176>
0xc02a739f <genfs_putpages+1991>:       cmpl   $0x0,0xffffff58(%ebp)
0xc02a73a6 <genfs_putpages+1998>:       je     0xc02a73cc <genfs_putpages+2036>
---Type <return> to continue, or q <return> to quit---
0xc02a73a8 <genfs_putpages+2000>:       cmpl   $0x0,0xffffff60(%ebp)
0xc02a73af <genfs_putpages+2007>:       je     0xc02a73c4 <genfs_putpages+2028>
0xc02a73b1 <genfs_putpages+2009>:       mov    0xffffff60(%ebp),%esi
0xc02a73b7 <genfs_putpages+2015>:       movl   $0x0,0xffffff60(%ebp)
0xc02a73c1 <genfs_putpages+2025>:       jmp    0xc02a7425 <genfs_putpages+2125>
0xc02a73c3 <genfs_putpages+2027>:       nop    
0xc02a73c4 <genfs_putpages+2028>:       mov    0x10(%esi),%esi
0xc02a73c7 <genfs_putpages+2031>:       jmp    0xc02a7425 <genfs_putpages+2125>
0xc02a73c9 <genfs_putpages+2033>:       lea    0x0(%esi),%esi
0xc02a73cc <genfs_putpages+2036>:       mov    0xffffff94(%ebp),%eax
---Type <return> to continue, or q <return> to quit---
0xc02a73cf <genfs_putpages+2039>:       mov    0xffffff90(%ebp),%ebx
0xc02a73d2 <genfs_putpages+2042>:       sub    %eax,%ebx
0xc02a73d4 <genfs_putpages+2044>:       mov    %ebx,%eax
0xc02a73d6 <genfs_putpages+2046>:       shl    $0xc,%eax
0xc02a73d9 <genfs_putpages+2049>:       cltd   
0xc02a73da <genfs_putpages+2050>:       add    %eax,0xffffff74(%ebp)
0xc02a73e0 <genfs_putpages+2056>:       adc    %edx,0xffffff78(%ebp)
0xc02a73e6 <genfs_putpages+2062>:       mov    0xffffff78(%ebp),%eax
0xc02a73ec <genfs_putpages+2068>:       cmp    %eax,0xffffff80(%ebp)
0xc02a73ef <genfs_putpages+2071>:       jg     0xc02a7406 <genfs_putpages+2094>
---Type <return> to continue, or q <return> to quit---
0xc02a73f1 <genfs_putpages+2073>:       mov    %eax,%edx
0xc02a73f3 <genfs_putpages+2075>:       cmp    %edx,0xffffff80(%ebp)
0xc02a73f6 <genfs_putpages+2078>:       jne    0xc02a7425 <genfs_putpages+2125>
0xc02a73f8 <genfs_putpages+2080>:       mov    0xffffff74(%ebp),%ecx
0xc02a73fe <genfs_putpages+2086>:       cmp    %ecx,0xffffff7c(%ebp)
0xc02a7404 <genfs_putpages+2092>:       jbe    0xc02a7425 <genfs_putpages+2125>
0xc02a7406 <genfs_putpages+2094>:       add    $0xfffffffc,%esp
0xc02a7409 <genfs_putpages+2097>:       mov    0xffffff74(%ebp),%eax
0xc02a740f <genfs_putpages+2103>:       mov    0xffffff78(%ebp),%edx
0xc02a7415 <genfs_putpages+2109>:       push   %edx
---Type <return> to continue, or q <return> to quit---
0xc02a7416 <genfs_putpages+2110>:       push   %eax
0xc02a7417 <genfs_putpages+2111>:       mov    0xffffff8c(%ebp),%edx
0xc02a741a <genfs_putpages+2114>:       push   %edx
0xc02a741b <genfs_putpages+2115>:       call   0xc0303ce0 <uvm_pagelookup>
0xc02a7420 <genfs_putpages+2120>:       mov    %eax,%esi
0xc02a7422 <genfs_putpages+2122>:       add    $0x10,%esp
0xc02a7425 <genfs_putpages+2125>:       cmpl   $0x0,0xffffff58(%ebp)
0xc02a742c <genfs_putpages+2132>:       jne    0xc02a7458 <genfs_putpages+2176>
0xc02a742e <genfs_putpages+2134>:       mov    0xffffff78(%ebp),%ecx
0xc02a7434 <genfs_putpages+2140>:       cmp    %ecx,0xffffff80(%ebp)
---Type <return> to continue, or q <return> to quit---
0xc02a7437 <genfs_putpages+2143>:       jg     0xc02a6ecc <genfs_putpages+756>
0xc02a743d <genfs_putpages+2149>:       mov    %ecx,%ebx
0xc02a743f <genfs_putpages+2151>:       cmp    %ebx,0xffffff80(%ebp)
0xc02a7442 <genfs_putpages+2154>:       jne    0xc02a7463 <genfs_putpages+2187>
0xc02a7444 <genfs_putpages+2156>:       mov    0xffffff74(%ebp),%eax
0xc02a744a <genfs_putpages+2162>:       cmp    %eax,0xffffff7c(%ebp)
0xc02a7450 <genfs_putpages+2168>:       jbe    0xc02a7463 <genfs_putpages+2187>
0xc02a7452 <genfs_putpages+2170>:       jmp    0xc02a6ecc <genfs_putpages+756>
0xc02a7457 <genfs_putpages+2175>:       nop    
0xc02a7458 <genfs_putpages+2176>:       lea    0xffffff98(%ebp),%eax
---Type <return> to continue, or q <return> to quit---
0xc02a745b <genfs_putpages+2179>:       cmp    %eax,%esi
0xc02a745d <genfs_putpages+2181>:       jne    0xc02a6e74 <genfs_putpages+668>
0xc02a7463 <genfs_putpages+2187>:       cmpl   $0x0,0xffffff58(%ebp)
0xc02a746a <genfs_putpages+2194>:       je     0xc02a7498 <genfs_putpages+2240>
0xc02a746c <genfs_putpages+2196>:       mov    0xffffffa8(%ebp),%edx
0xc02a746f <genfs_putpages+2199>:       test   %edx,%edx
0xc02a7471 <genfs_putpages+2201>:       je     0xc02a747c <genfs_putpages+2212>
0xc02a7473 <genfs_putpages+2203>:       mov    0xffffffac(%ebp),%eax
0xc02a7476 <genfs_putpages+2206>:       mov    %eax,0x14(%edx)
0xc02a7479 <genfs_putpages+2209>:       jmp    0xc02a7485 <genfs_putpages+2221>
---Type <return> to continue, or q <return> to quit---
0xc02a747b <genfs_putpages+2211>:       nop    
0xc02a747c <genfs_putpages+2212>:       mov    0xffffffac(%ebp),%eax
0xc02a747f <genfs_putpages+2215>:       mov    0xffffff8c(%ebp),%edx
0xc02a7482 <genfs_putpages+2218>:       mov    %eax,0xc(%edx)
0xc02a7485 <genfs_putpages+2221>:       mov    0xffffffac(%ebp),%eax
0xc02a7488 <genfs_putpages+2224>:       mov    0xffffffa8(%ebp),%edx
0xc02a748b <genfs_putpages+2227>:       mov    %edx,(%eax)
0xc02a748d <genfs_putpages+2229>:       mov    0xc05b5fe8,%eax
0xc02a7492 <genfs_putpages+2234>:       decl   0xfc(%eax)
0xc02a7498 <genfs_putpages+2240>:       mov    0xc0608fac,%ecx
---Type <return> to continue, or q <return> to quit---
0xc02a749e <genfs_putpages+2246>:       mov    %ecx,%eax
0xc02a74a0 <genfs_putpages+2248>:       or     0xc0608ef8,%eax
0xc02a74a6 <genfs_putpages+2254>:       mov    %eax,0xc0608fac
0xc02a74ab <genfs_putpages+2259>:       cmpl   $0x0,0xffffff48(%ebp)
0xc02a74b2 <genfs_putpages+2266>:       je     0xc02a750b <genfs_putpages+2355>
0xc02a74b4 <genfs_putpages+2268>:       cmpl   $0x0,0xffffff5c(%ebp)
0xc02a74bb <genfs_putpages+2275>:       je     0xc02a750b <genfs_putpages+2355>
0xc02a74bd <genfs_putpages+2277>:       mov    0xffffff84(%ebp),%eax
0xc02a74c0 <genfs_putpages+2280>:       or     0xffffff88(%ebp),%eax
0xc02a74c3 <genfs_putpages+2283>:       jne    0xc02a750b <genfs_putpages+2355>
---Type <return> to continue, or q <return> to quit---
0xc02a74c5 <genfs_putpages+2285>:       cmpl   $0xfffff000,0xffffff7c(%ebp)
0xc02a74cf <genfs_putpages+2295>:       jne    0xc02a750b <genfs_putpages+2355>
0xc02a74d1 <genfs_putpages+2297>:       cmpl   $0x7fffffff,0xffffff80(%ebp)
0xc02a74d8 <genfs_putpages+2304>:       jne    0xc02a750b <genfs_putpages+2355>
0xc02a74da <genfs_putpages+2306>:       mov    0xffffff8c(%ebp),%ebx
0xc02a74dd <genfs_putpages+2309>:       cmpl   $0x0,0x50(%ebx)
0xc02a74e1 <genfs_putpages+2313>:       jne    0xc02a750b <genfs_putpages+2355>
0xc02a74e3 <genfs_putpages+2315>:       mov    0x20(%ebx),%eax
0xc02a74e6 <genfs_putpages+2318>:       test   $0x40,%ah
0xc02a74e9 <genfs_putpages+2321>:       je     0xc02a750b <genfs_putpages+2355>
---Type <return> to continue, or q <return> to quit---
0xc02a74eb <genfs_putpages+2323>:       and    $0xbf,%ah
0xc02a74ee <genfs_putpages+2326>:       mov    %eax,0x20(%ebx)
0xc02a74f1 <genfs_putpages+2329>:       mov    0x54(%ebx),%edx
0xc02a74f4 <genfs_putpages+2332>:       test   %edx,%edx
0xc02a74f6 <genfs_putpages+2334>:       je     0xc02a7500 <genfs_putpages+2344>
0xc02a74f8 <genfs_putpages+2336>:       mov    0x58(%ebx),%eax
0xc02a74fb <genfs_putpages+2339>:       mov    %eax,0x58(%edx)
0xc02a74fe <genfs_putpages+2342>:       mov    %esi,%esi
0xc02a7500 <genfs_putpages+2344>:       mov    0xffffff8c(%ebp),%eax
0xc02a7503 <genfs_putpages+2347>:       mov    0x58(%eax),%edx
---Type <return> to continue, or q <return> to quit---
0xc02a7506 <genfs_putpages+2350>:       mov    0x54(%eax),%eax
0xc02a7509 <genfs_putpages+2353>:       mov    %eax,(%edx)
0xc02a750b <genfs_putpages+2355>:       mov    %ecx,0xc0608fac
0xc02a7511 <genfs_putpages+2361>:       not    %ecx
0xc02a7513 <genfs_putpages+2363>:       mov    0xc0607ec4,%eax
0xc02a7518 <genfs_putpages+2368>:       test   %ecx,%eax
0xc02a751a <genfs_putpages+2370>:       je     0xc02a7521 <genfs_putpages+2377>
0xc02a751c <genfs_putpages+2372>:       call   0xc0101e08 <eintrnames>
0xc02a7521 <genfs_putpages+2377>:       cmpl   $0x0,0xffffff5c(%ebp)
0xc02a7528 <genfs_putpages+2384>:       jne    0xc02a7596 <genfs_putpages+2494>
---Type <return> to continue, or q <return> to quit---
0xc02a752a <genfs_putpages+2386>:       cmpl   $0x0,0xffffff50(%ebp)
0xc02a7531 <genfs_putpages+2393>:       jne    0xc02a7596 <genfs_putpages+2494>
0xc02a7533 <genfs_putpages+2395>:       mov    0xc0608fac,%esi
0xc02a7539 <genfs_putpages+2401>:       mov    %esi,%eax
0xc02a753b <genfs_putpages+2403>:       or     0xc0608ef8,%eax
0xc02a7541 <genfs_putpages+2409>:       mov    %eax,0xc0608fac
0xc02a7546 <genfs_putpages+2414>:       mov    0xffffff8c(%ebp),%edx
0xc02a7549 <genfs_putpages+2417>:       cmpl   $0x0,0x24(%edx)
0xc02a754d <genfs_putpages+2421>:       je     0xc02a7580 <genfs_putpages+2472>
0xc02a754f <genfs_putpages+2423>:       mov    %edx,%ebx
---Type <return> to continue, or q <return> to quit---
0xc02a7551 <genfs_putpages+2425>:       add    $0x24,%ebx
0xc02a7554 <genfs_putpages+2428>:       mov    0xffffff8c(%ebp),%ecx
0xc02a7557 <genfs_putpages+2431>:       orb    $0x4,0x21(%ecx)
0xc02a755b <genfs_putpages+2435>:       add    $0xfffffff4,%esp
0xc02a755e <genfs_putpages+2438>:       push   %ecx
0xc02a755f <genfs_putpages+2439>:       push   $0x0
0xc02a7561 <genfs_putpages+2441>:       push   $0xc047bce6
0xc02a7566 <genfs_putpages+2446>:       push   $0x204
0xc02a756b <genfs_putpages+2451>:       push   %ebx
0xc02a756c <genfs_putpages+2452>:       call   0xc027b780 <ltsleep>
---Type <return> to continue, or q <return> to quit---
0xc02a7571 <genfs_putpages+2457>:       add    $0x20,%esp
0xc02a7574 <genfs_putpages+2460>:       mov    0xffffff8c(%ebp),%eax
0xc02a7577 <genfs_putpages+2463>:       cmpl   $0x0,0x24(%eax)
0xc02a757b <genfs_putpages+2467>:       jne    0xc02a7554 <genfs_putpages+2428>
0xc02a757d <genfs_putpages+2469>:       lea    0x0(%esi),%esi
0xc02a7580 <genfs_putpages+2472>:       mov    %esi,0xc0608fac
0xc02a7586 <genfs_putpages+2478>:       not    %esi
0xc02a7588 <genfs_putpages+2480>:       mov    0xc0607ec4,%eax
0xc02a758d <genfs_putpages+2485>:       test   %esi,%eax
0xc02a758f <genfs_putpages+2487>:       je     0xc02a7596 <genfs_putpages+2494>
---Type <return> to continue, or q <return> to quit---
0xc02a7591 <genfs_putpages+2489>:       call   0xc0101e08 <eintrnames>
0xc02a7596 <genfs_putpages+2494>:       mov    0xffffff6c(%ebp),%eax
0xc02a759c <genfs_putpages+2500>:       lea    0xffffff28(%ebp),%esp
0xc02a75a2 <genfs_putpages+2506>:       pop    %ebx
0xc02a75a3 <genfs_putpages+2507>:       pop    %esi
0xc02a75a4 <genfs_putpages+2508>:       pop    %edi
0xc02a75a5 <genfs_putpages+2509>:       leave  
0xc02a75a6 <genfs_putpages+2510>:       ret    
0xc02a75a7 <genfs_putpages+2511>:       nop    
End of assembler dump.
(gdb) quit
On Mar 13, 11:20am, David Laight wrote:
} Subject: Re: Another serious bug in NetBSD-1.6.1
} > #1  0xc030cb4f in cpu_reboot ()
} > #2  0xc028375e in panic ()
} 
} Should the locking be disabled after a panic in order to get the dump out?
} After all not much else should be running...
} 
} > #3  0xc02752c1 in lockmgr ()
} > #4  0xc02a5a78 in genfs_lock ()
} > #5  0xc02a4b5a in VOP_LOCK ()
} > #6  0xc02a431d in vn_lock ()
} > #7  0xc029df7c in vget ()
} > #8  0xc0245733 in ffs_sync ()
} > #9  0xc02a0242 in sys_sync ()
} > #10 0xc029f262 in vfs_shutdown ()
} > #11 0xc030cb27 in cpu_reboot ()
} > #12 0xc028375e in panic ()
} > #13 0xc03134ce in trap ()
} > #14 0xc0100bf7 in calltrap ()
} > #15 0xc02a7021 in genfs_putpages ()
} 
} Any chance of working out whereabouts in genfs_putpages 0xc02a7021 is?
} 
} > #16 0xc0247471 in ffs_putpages ()
} > #17 0xc02a4fc9 in VOP_PUTPAGES ()
} > #18 0xc0247080 in ffs_full_fsync ()
} > #19 0xc0246df0 in ffs_fsync ()
} > #20 0xc02a481c in VOP_FSYNC ()
} > #21 0xc0245767 in ffs_sync ()
} > #22 0xc02a9b70 in sync_fsync ()
} > #23 0xc02a481c in VOP_FSYNC ()
} > #24 0xc02a98e9 in sched_sync ()
} 
} 
} 	David
} 
} -- 
} David Laight: david@l8s.co.uk
>-- End of excerpt from David Laight