Date: Mon, 09 Dec 2002 12:54:14 -0500 (EST) From: John Baldwin <jhb@FreeBSD.org> To: Dag-Erling Smorgrav <des@ofug.org> Cc: current@freebsd.org Subject: RE: panic in ithread_loop() Message-ID: <XFMail.20021209125414.jhb@FreeBSD.org> In-Reply-To: <xzpsmx81so6.fsf@flood.ping.uio.no>
next in thread | previous in thread | raw e-mail | index | archive | help
On 08-Dec-2002 Dag-Erling Smorgrav wrote:
> This is 100% reproducible with a top-of-tree kernel, but didn't happen
> with Wednesday's sources:
>
> Fatal trap 12: page fault while in kernel mode
> fault virtual address = 0xc01e8d
> fault code = supervisor write, page not present
> instruction pointer = 0x8:0xc045dc80
> stack pointer = 0x10:0xd536dce4
> frame pointer = 0x10:0xd536dd00
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, def32 1, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 12 (swi6: tty:sio clock)
> kernel: type 12 trap, code=0
> Stopped at 0xc045dc80: movb %al,0xc01e8d
> db> trace
> _end(0) at 0xc045dc80
> ithread_loop(c152ab00,d536dd48,c1537b60,c01d3d80,0) at ithread_loop+0x11c
> fork_exit(c01d3d80,c152ab00,d536dd48) at fork_exit+0x8f
> fork_trampoline() at fork_trampoline+0x1a
> --- trap 0x1, eip = 0, esp = 0xd536dd7c, ebp = 0 ---
>
> and according to gdb:
>
> (gdb) list _end
> No line number known for _end.
> (gdb) list *0xc045dc80
> No source file for address 0xc045dc80.
This is where it faulted for some reason or another. It was running
a registered interrupt handler. Do you have any kernel modules in this
system?
> (gdb) l *(ithread_loop + 0x11c)
> 0xc01d3e9c is in ithread_loop (../../../kern/kern_intr.c:536).
> 531 goto restart;
> 532 }
> 533 if ((ih->ih_flags & IH_MPSAFE) == 0)
> 534 mtx_lock(&Giant);
> 535 ih->ih_handler(ih->ih_argument);
> 536 if ((ih->ih_flags & IH_MPSAFE) == 0)
> 537 mtx_unlock(&Giant);
> 538 }
> 539 }
> 540
> (gdb) l *(fork_exit+0x8f)
> 0xc01d326f is in fork_exit (../../../kern/kern_fork.c:872).
> 867
> 868 /*
> 869 * Check if a kernel thread misbehaved and returned from its main
> 870 * function.
> 871 */
> 872 PROC_LOCK(p);
> 873 if (p->p_flag & P_KTHREAD) {
> 874 PROC_UNLOCK(p);
> 875 mtx_lock(&Giant);
> 876 printf("Kernel thread \"%s\" (pid %d) exited prematurely.\n",
> (gdb) l *(fork_trampoline+0x1a)
> 0xc02db94e is at {standard input}:152.
> 147 {standard input}: No such file or directory.
> in {standard input}
>
> DES
> --
> Dag-Erling Smorgrav - des@ofug.org
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-current" in the body of the message
--
John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20021209125414.jhb>
