From owner-freebsd-current@FreeBSD.ORG Sat Jun 19 12:59:45 2004 Return-Path: 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 B0B6A16A4CE for ; Sat, 19 Jun 2004 12:59:45 +0000 (GMT) Received: from mailout2.pacific.net.au (mailout2.pacific.net.au [61.8.0.85]) by mx1.FreeBSD.org (Postfix) with ESMTP id 372E343D2F for ; Sat, 19 Jun 2004 12:59:45 +0000 (GMT) (envelope-from bde@zeta.org.au) Received: from mailproxy2.pacific.net.au (mailproxy2.pacific.net.au [61.8.0.87])i5JCxU5v006065; Sat, 19 Jun 2004 22:59:30 +1000 Received: from gamplex.bde.org (katana.zip.com.au [61.8.7.246]) i5JCxMnl027198; Sat, 19 Jun 2004 22:59:28 +1000 Date: Sat, 19 Jun 2004 22:59:22 +1000 (EST) From: Bruce Evans X-X-Sender: bde@gamplex.bde.org To: Static In-Reply-To: <20040619011759.J92183@static.ninja-assassin.com> Message-ID: <20040619224926.D1028@gamplex.bde.org> References: <20040619011759.J92183@static.ninja-assassin.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: current@freebsd.org Subject: Re: npxdna causing kernel traps X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jun 2004 12:59:45 -0000 On Sat, 19 Jun 2004, Static wrote: > I have a fresh install of 5.2.1 which i then upgraded to -current. I'm > now getting the following message scrolling on the console > > kernel trap 22 with interrupts disabled > kernel: npxdna: fpcurthread == curthread X times Should be fixed in rev.1.592 of i386/machdep.c. Sorry about that. > trap: > > Fatal trap 12: page fault while in kernel mode > fault virtual address = 0x100 > fault code = supervisor read, page not present > instruction pointer = 0x8:0xc05ce9c4 > stack pointer = 0x10:0xcc598a9c` > frame pointer = 0x10:0xcc598a9c` > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL, pres 1, def32 1, gran 1 > processor eflags = resume, IOPL = 0 > current process = 54139 (make) > kernel: type 12 trap, code=0 > Stopped at npxdrop+0x20: movl 0x100(%eax),%eax > > db> trace > npxdrop(cc598d48,cc598ac4,c05c1c68,c1122dc0,48) at npxdrop+0x20 > fpstate_drop(c1122dc0,48,c14c0400,cc598b8c,0) at fpstate_drop+0x31 > exec_setregs(c1122dc0,80480b8,bfbfebf8,0,20) at exec_setregs+0xf8 > kern_execve(c1122dc0,8069644,80695b4,80695c4,0) at kern_execve+0xb81 > execve(c1122dc0,cc598d14,c,c1122dc0,3) at execve+0x18 > syscall(2f,2f,2f,0,0) at syscall+0x1d0 > Xint0x80_syscall() at Xint0x80_syscall+0x1f > --- syscall (0, FreeBSD ELF32, nosys), eip=0x80480b8, esp=0bfbfebf8,ebp = > 0 --- This is a side effect of the bug that I suspected but didn't see in normal operation. npxdna() fixes up the problem OK except for printing an error message, but trap() enables interrupts and npxdrop() is depending on them staying disabled. Switching context to an ithread is possible and causes the above null pointer panic. Bruce