From owner-freebsd-current Tue Mar 25 15:14:18 2003 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EF8DE37B401 for ; Tue, 25 Mar 2003 15:14:04 -0800 (PST) Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5D4E14401A for ; Tue, 25 Mar 2003 15:10:28 -0800 (PST) (envelope-from gallatin@cs.duke.edu) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.12.8/8.12.8) with ESMTP id h2PNAQRv028404 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Tue, 25 Mar 2003 18:10:26 -0500 (EST) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.11.6/8.9.1) id h2PNAL415282; Tue, 25 Mar 2003 18:10:21 -0500 (EST) (envelope-from gallatin@cs.duke.edu) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <16000.57820.971424.771124@grasshopper.cs.duke.edu> Date: Tue, 25 Mar 2003 18:10:20 -0500 (EST) To: Martin Karlsson Cc: freebsd-current@freebsd.org Subject: Re: panic: blockable sleep lock (sleep mutex) Giant @ /usr/src/sys/vm/vm_fault.c:206 In-Reply-To: <20030325213403.GA715@c-303a70d5.bredbandsbolaget.se> References: <20030325213403.GA715@c-303a70d5.bredbandsbolaget.se> X-Mailer: VM 6.75 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid X-Spam-Status: No, hits=-25.9 required=5.0 tests=AWL,EMAIL_ATTRIBUTION,IN_REP_TO,PATCH_UNIFIED_DIFF, REFERENCES,REPLY_WITH_QUOTES autolearn=ham version=2.50 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Martin Karlsson writes: > #9 0xc02dca88 in calltrap () at {standard input}:96 > #10 0xc01e7b0b in panic (fmt=0x0) at /usr/src/sys/kern/kern_shutdown.c:528 > #11 0xc020256e in witness_lock (lock=0xc03760c0, flags=8, file=0xc0332416 "/usr/src/sys/vm/vm_fault.c", line=206) > at /usr/src/sys/kern/subr_witness.c:604 > #12 0xc01e0237 in _mtx_lock_flags (m=0xc03760c0, opts=0, file=0xc0332416 "/usr/src/sys/vm/vm_fault.c", line=206) at /usr/src/sys/kern/kern_mutex.c:336 It looks like the witness mutex debugging system crashed. This sort of thing tends to happen when the witness data structures become corrupt. A frequent cause of this is a module failing to destroy a mutex. I think the recent addition of the MTX_SYSINIT(linux_osname, &osname_lock, "linux osname", MTX_DEF); could be causing the problem, as I do not see how its getting torn down. Can you try the following patch (it may not even compile, I don't have a current box handy): (its obviously incomplete, just intended to see if it fixes the problem you are seeing) Drew Index: compat/linux/linux_mib.c =================================================================== RCS file: /home/ncvs/src/sys/compat/linux/linux_mib.c,v retrieving revision 1.19 diff -u -r1.19 linux_mib.c --- compat/linux/linux_mib.c 13 Mar 2003 22:45:43 -0000 1.19 +++ compat/linux/linux_mib.c 25 Mar 2003 23:05:08 -0000 @@ -50,7 +50,7 @@ SYSCTL_NODE(_compat, OID_AUTO, linux, CTLFLAG_RW, 0, "Linux mode"); -static struct mtx osname_lock; +struct mtx osname_lock; MTX_SYSINIT(linux_osname, &osname_lock, "linux osname", MTX_DEF); static char linux_osname[LINUX_MAX_UTSNAME] = "Linux"; Index: i386/linux/linux_sysvec.c =================================================================== RCS file: /home/ncvs/src/sys/i386/linux/linux_sysvec.c,v retrieving revision 1.116 diff -u -r1.116 linux_sysvec.c --- i386/linux/linux_sysvec.c 21 Mar 2003 19:49:34 -0000 1.116 +++ i386/linux/linux_sysvec.c 25 Mar 2003 23:07:36 -0000 @@ -885,6 +885,7 @@ &linux_glibc2brand, NULL }; +extern struct mtx osname_lock; static int linux_elf_modevent(module_t mod, int type, void *data) @@ -925,6 +926,7 @@ linux_ioctl_unregister_handler(*lihp); if (bootverbose) printf("Linux ELF exec handler removed\n"); + mtx_destroy(&osname_lock); } else printf("Could not deinstall ELF interpreter entry\n"); break; To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message