Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Feb 2006 11:32:48 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-current@freebsd.org, Cy Schubert <Cy.Schubert@spqr.komquats.com>
Subject:   Re: Panic In mi_switch+0x7e
Message-ID:  <200602091132.50258.jhb@freebsd.org>
In-Reply-To: <200602081534.k18FYOFe075677@cwsys.cwsent.com>
References:  <200602081534.k18FYOFe075677@cwsys.cwsent.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org



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