On Wednesday 08 February 2006 10:34, Cy Schubert wrote: > I issue the reboot command and the system panics and drops into DDB. > > Fatal trap 12: page fault while in kernel mode > cpuid = 0; apic id = 00 > fault virtual address = 0x0 > fault code = supervisor write, page not present > instruction pointer = 0x20:0xc067a1fe > stack pointer = 0x28:0xc6ee19fc > frame pointer = 0x28:0xc6ee1a44 > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, def32 1, gran 1 > processor eflags = resume, IOPL = 0 > current process = 594 (reboot) > [thread pid 594 tid 100071 ] > Stopped at mi_switch+0x7e: addl %eax,0(%eax) > db> trace > Tracing pid 594 tid 100071 td 0xc18b91a0 > mi_switch(0,0,0,1,c6ee0e6c) at mi_switch+0x7e > db> Hmm, odd. Here's where that maps to on a local kernel (not sure if it's the same exact line on yours though): 0xc06b3e43 is in mi_switch (../../../kern/kern_synch.c:368). 363 td = curthread; /* XXX */ 364 p = td->td_proc; /* XXX */ 365 KASSERT(!TD_ON_RUNQ(td), ("mi_switch: called by old code")); 366 #ifdef INVARIANTS 367 if (!TD_ON_LOCK(td) && !TD_IS_RUNNING(td)) 368 mtx_assert(&Giant, MA_NOTOWNED); 369 #endif 370 KASSERT(td->td_critnest == 1 || (td->td_critnest == 2 && 371 (td->td_owepreempt) && (flags & SW_INVOL) != 0 && 372 newtd == NULL) || panicstr, Hmm, looking at the assembly it doesn't line up. Can you pull up gdb on your kernel.debug and do 'l *mi_switch+0x7e'? -- John Baldwin <jhb_at_FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.orgReceived on Thu Feb 09 2006 - 15:35:36 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:52 UTC