From owner-freebsd-questions Wed Apr 29 22:47:56 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id WAA10319 for freebsd-questions-outgoing; Wed, 29 Apr 1998 22:47:56 -0700 (PDT) (envelope-from owner-freebsd-questions@FreeBSD.ORG) Received: from chaos.taylored.com (chaos.taylored.com [206.53.224.58]) by hub.freebsd.org (8.8.8/8.8.8) with SMTP id WAA10310 for ; Wed, 29 Apr 1998 22:47:44 -0700 (PDT) (envelope-from nowhere@chaos.taylored.com) Received: (qmail 5249 invoked by uid 100); 30 Apr 1998 05:47:44 -0000 Date: Thu, 30 Apr 1998 00:47:44 -0500 (EST) From: Chael Hall To: questions@FreeBSD.ORG cc: Chael Hall Subject: 2.2.6 panic: vm_page_free... (more info) Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Well, the post-mortem analysis seems to have worked, but I don't know what I'm looking for. I'm not sure if now is the time to become a kernel hacker, so here's what I turned up so far. I'll be glad to go romping around some more if you tell me what to type. Alternatively, I'd be willing to send my kernel and the core file to any unwitting--er, kind soul who wants to debug it in their spare time. ;-) Here goes nothing: Script started on Thu Apr 30 00:39:39 1998 > gdb -k /usr/src/sys/compile/CHAOS226/kernel vmcore.0 GDB is free software and you are welcome to 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. GDB 4.16 (i386-unknown-freebsd), Copyright 1996 Free Software Foundation, Inc... IdlePTD 253000 current pcb at 22ad28 panic: vm_page_free: freeing free page #0 0xf0113fa3 in boot () (kgdb) where #0 0xf0113fa3 in boot () #1 0xf0114262 in panic () #2 0xf01c920f in vm_page_freechk_and_unqueue (m=0xf03ea904) at ../../vm/vm_page.c:946 #3 0xf01c929e in vm_page_free (m=0xf03ea904) at ../../vm/vm_page.c:1014 #4 0xf01c719a in vm_object_terminate (object=0xf2755000) at ../../vm/vm_object.c:409 #5 0xf01c6feb in vm_object_deallocate (object=0xf2755000) at ../../vm/vm_object.c:353 #6 0xf01c5374 in vm_map_entry_delete (map=0xf2336d00, entry=0xf21b7600) at ../../vm/vm_map.c:1885 #7 0xf01c54f0 in vm_map_delete (map=0xf2336d00, start=0, end=4022329344) at ../../vm/vm_map.c:1986 #8 0xf01c5580 in vm_map_remove (map=0xf2336d00, start=0, end=4022329344) at ../../vm/vm_map.c:2011 #9 0xf010db80 in exit1 () #10 0xf01154e6 in sigexit () #11 0xf01152ca in postsig () #12 0xf01dd5f0 in trap (frame={tf_es = -272695257, tf_ds = -272695257, tf_edi = 0, tf_esi = -272638376, tf_ebp = -272719652, tf_isp = -272629788, tf_ebx = -272695908, tf_edx = -272702068, tf_ecx = 1, tf_eax = 4096, tf_trapno = 12, tf_err = 0, tf_eip = 0, tf_cs = 31, tf_eflags = 66054, tf_esp = -272719712, tf_ss = 39}) ---Type to continue, or q to quit--- at ../../i386/i386/trap.c:151 (kgdb) up 2 #2 0xf01c920f in vm_page_freechk_and_unqueue (m=0xf03ea904) at ../../vm/vm_page.c:946 946 panic("vm_page_free: freeing free page"); (kgdb) up #3 0xf01c929e in vm_page_free (m=0xf03ea904) at ../../vm/vm_page.c:1014 1014 if (!vm_page_freechk_and_unqueue(m)) { (kgdb) up #4 0xf01c719a in vm_object_terminate (object=0xf2755000) at ../../vm/vm_object.c:409 409 vm_page_free(p); (kgdb) up #5 0xf01c6feb in vm_object_deallocate (object=0xf2755000) at ../../vm/vm_object.c:353 353 vm_object_terminate(object); (kgdb) up #6 0xf01c5374 in vm_map_entry_delete (map=0xf2336d00, entry=0xf21b7600) at ../../vm/vm_map.c:1885 1885 vm_object_deallocate(entry->object.vm_object); (kgdb) up #7 0xf01c54f0 in vm_map_delete (map=0xf2336d00, start=0, end=4022329344) at ../../vm/vm_map.c:1986 1986 vm_map_entry_delete(map, entry); (kgdb) up #8 0xf01c5580 in vm_map_remove (map=0xf2336d00, start=0, end=4022329344) at ../../vm/vm_map.c:2011 2011 result = vm_map_delete(map, start, end); (kgdb) up #9 0xf010db80 in exit1 () (kgdb) up #10 0xf01154e6 in sigexit () (kgdb) up #11 0xf01152ca in postsig () (kgdb) up #12 0xf01dd5f0 in trap (frame={tf_es = -272695257, tf_ds = -272695257, tf_edi = 0, tf_esi = -272638376, tf_ebp = -272719652, tf_isp = -272629788, tf_ebx = -272695908, tf_edx = -272702068, tf_ecx = 1, tf_eax = 4096, tf_trapno = 12, tf_err = 0, tf_eip = 0, tf_cs = 31, tf_eflags = 66054, tf_esp = -272719712, tf_ss = 39}) at ../../i386/i386/trap.c:151 151 postsig(sig); (kgdb) list 146 u_quad_t oticks; 147 { 148 int sig, s; 149 150 while ((sig = CURSIG(p)) != 0) 151 postsig(sig); 152 p->p_priority = p->p_usrpri; 153 if (want_resched) { 154 /* 155 * Since we are curproc, clock will normally just change (kgdb) up Initial frame selected; you cannot go up. (kgdb) quit > exit exit Script done on Thu Apr 30 00:43:07 1998 Thanks again... I really appreciate any help you can provide. Once again, I'm not on the questions list, so please make sure that all replies get to me. Thanks, Chael -- Chael Hall, nowhere@chaos.taylored.com Gossamer USA - http://gossamer.x-philes.com/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message