Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Jun 1999 14:19:04 -0700 (PDT)
From:      Doug White <dwhite@resnet.uoregon.edu>
To:        hackers@freebsd.org
Subject:   3.1 panic: vm_page_unwire: invalid wire count: 0
Message-ID:  <Pine.BSF.4.10.9906181355490.70758-100000@resnet.uoregon.edu>

next in thread | raw e-mail | index | archive | help
Hello ..

I'm getting the following panic on a P90 running 3.1-RELEASE.  This system
is one of our routers and crashes every week or so.  I can't find any
reference if this was fixed or not.  If someone's been playing in this
area recently I can schedule an upgrade to 3.2 or -STABLE if it would
help.  

The panic appears to be a problem inside of procfs, although I'm not sure
it's just an innocent victim to a previous corruption.  It doesn't help
that the kernel can't keep time on this box; see PR 12022.

I can make the core files and debugged kernel available if desired.

Some time before this (in this case ~4hrs) this message is logged:

/kernel: vm_page_free: freeing wired page

Here is ye olde stack trace:

#0  boot (howto=256) at ../../kern/kern_shutdown.c:285
285                     dumppcb.pcb_cr3 = rcr3();
(kgdb) bt
#0  boot (howto=256) at ../../kern/kern_shutdown.c:285
#1  0xf012abf8 in at_shutdown (function=0xf0209c25 <cvtbsdprot.232+717>, 
    arg=0x0, queue=-193525184) at ../../kern/kern_shutdown.c:446
#2  0xf01cf3f3 in vm_page_unwire (m=0xf043f594, activate=1)
    at ../../vm/vm_page.c:1346
#3  0xf0157851 in procfs_rwmem (curp=0xf4861ba0, p=0xf476c3c0,
uio=0xf4868f40)
    at ../../miscfs/procfs/procfs_mem.c:256
#4  0xf0157928 in procfs_domem (curp=0xf4861ba0, p=0xf476c3c0,
pfs=0xf0c1c900, 
    uio=0xf4868f40) at ../../miscfs/procfs/procfs_mem.c:305
#5  0xf01581cf in procfs_rw (ap=0xf4868efc)
    at ../../miscfs/procfs/procfs_subr.c:279
#6  0xf0153de1 in vn_read (fp=0xf0bebf80, uio=0xf4868f40, cred=0xf0c15900)
    at vnode_if.h:303
#7  0xf0135469 in read (p=0xf4861ba0, uap=0xf4868f94)
    at ../../kern/sys_generic.c:121
#8  0xf01ed07b in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi =
-272642048, 
      tf_esi = 4096, tf_ebp = -272644136, tf_isp = -192507932, tf_ebx = 0, 
      tf_edx = 0, tf_ecx = -272642048, tf_eax = 3, tf_trapno = 8, tf_err =
2, 
      tf_eip = 134548752, tf_cs = 31, tf_eflags = 659, tf_esp =
-272645204, 
      tf_ss = 39}) at ../../i386/i386/trap.c:1100
#9  0xf01e145c in Xint0x80_syscall ()
#10 0x804b002 in ?? ()
#11 0x804b2c0 in ?? ()
#12 0x804b30a in ?? ()
#13 0x8049dd7 in ?? ()
#14 0x8049eb9 in ?? ()
#15 0x8049b03 in ?? ()
#16 0x80480e9 in ?? ()

And here be the screwy part:
(kgdb) frame 2
#2  0xf01cf3f3 in vm_page_unwire (m=0xf043f594, activate=1)
    at ../../vm/vm_page.c:1346
1346                    panic("vm_page_unwire: invalid wire count: %d\n",
m->wire_count);
(kgdb) print *m
$6 = {pageq = {tqe_next = 0x705f6d76, tqe_prev = 0x5f656761}, hashq = {
    tqe_next = 0x69776e75, tqe_prev = 0x203a6572}, listq = {
    tqe_next = 0x61766e69, tqe_prev = 0x2064696c}, object = 0x65726977, 
  pindex = 1970234144, phys_addr = 540701806, queue = 25637, flags = 10, 
  pc = 28022, wire_count = 28767, hold_count = 26465, act_count = 101 'e', 
  busy = 95 '_', valid = 99 'c', dirty = 97 'a'}
(kgdb) print m
$7 = (struct vm_page *) 0xf0209c25
(kgdb) frame 3
#3  0xf0157851 in procfs_rwmem (curp=0xf4861ba0, p=0xf476c3c0,
uio=0xf4868f40)
    at ../../miscfs/procfs/procfs_mem.c:256
256                     vm_page_unwire(m, 1);
(kgdb) print m 
$8 = (struct vm_page *) 0x100

Thoughts?  Hints? Buttons to push?  Thanks!

Doug White                               
Internet:  dwhite@resnet.uoregon.edu    | FreeBSD: The Power to Serve
http://gladstone.uoregon.edu/~dwhite    | www.freebsd.org



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.10.9906181355490.70758-100000>