Re: Panic at boot time on SMP

From: Kris Kennaway <kris_at_obsecurity.org>
Date: Fri, 4 Jul 2003 18:04:31 -0700
On Thu, Jul 03, 2003 at 10:34:34AM -0400, John Baldwin wrote:

> > Fatal trap 12: page fault while in kernel mode
> > cpuid = 0; lapic.id = 01000000
> > fault virtual address   = 0xdf119fec
> > fault code              = supervisor write, page not present
> > instruction pointer     = 0x8:0xc030b254
> > stack pointer           = 0x10:0xc0467b48
> > frame pointer           = 0x10:0xc0467b48
> > 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         = 0 (swapper)
> > kernel: type 12 trap, code=0
> > Stopped at      cpu_thread_setup+0x24:  movl    $0,0x24c(%ecx)
> > db> trace
> > cpu_thread_setup(c21ab000,0,c033b1d4,be,0) at cpu_thread_setup+0x24
> 
> void
> cpu_thread_setup(struct thread *td)
> {
> 
>         td->td_pcb =
>              (struct pcb *)(td->td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1;
>         td->td_frame = (struct trapframe *)((caddr_t)td->td_pcb - 16) - 1;
>         td->td_pcb->pcb_ext = NULL; 
> }
> 
> On my laptop, cpu_thread_setup+0x24 is the line that sets td->td_pcb->pcb_ext
> to NULL.  It would seem that td_pcb is hosered.  You could perhaps add
> some printf's to dump the value of td_kstack and make sure it is a sane
> value?

td->td_kstack = 0xdf112000

Kris

Received on Fri Jul 04 2003 - 16:04:37 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:14 UTC