Skip site navigation (1)Skip section navigation (2)
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>