Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 08 Dec 2002 15:39:21 +0100
From:      Dag-Erling Smorgrav <des@ofug.org>
To:        current@freebsd.org
Subject:   panic in ithread_loop()
Message-ID:  <xzpsmx81so6.fsf@flood.ping.uio.no>

next in thread | raw e-mail | index | archive | help
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.
(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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?xzpsmx81so6.fsf>