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
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:14 UTC