Date: Fri, 13 Dec 2013 16:20:24 -0500 From: John Baldwin <jhb@freebsd.org> To: "Poul-Henning Kamp" <phk@phk.freebsd.dk> Cc: freebsd-current@freebsd.org Subject: Re: r259072 is not a happy camper... Message-ID: <201312131620.25107.jhb@freebsd.org> In-Reply-To: <44591.1386966997@critter.freebsd.dk> References: <27325.1386444776@critter.freebsd.dk> <201312091216.04052.jhb@freebsd.org> <44591.1386966997@critter.freebsd.dk>
index | next in thread | previous in thread | raw e-mail
On Friday, December 13, 2013 3:36:37 pm Poul-Henning Kamp wrote:
> In message <201312091216.04052.jhb@freebsd.org>, John Baldwin writes:
> >On Saturday, December 07, 2013 2:32:56 pm Poul-Henning Kamp wrote:
> >>
> >> kdb_backtrace() at kdb_backtrace+0x39/frampanic: bad stray interrupt
> >> cpuid = 2
> >> KDB: stack backtrace:
> >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame
0xfffffe011120e9e0
> >> kdb_backtrace() at kdb_backtrace+0x39/frame 0xfffffe011120ea90
> >> vpanic() at vpanic+0x126/frame 0xfffffe011120ead0
> >> kassert_panic() at kassert_panic+0x136/frame 0xfffffe011120eb40
> >> intr_event_handle() at intr_event_handle+0x11d/frame 0xfffffe011120eb90
> >> intr_execute_handlers() at intr_execute_handlers+0x48/frame
0xfffffe011120ebc0
> >> lapic_handle_intr() at lapic_handle_intr+0x73/frame 0xfffffe011120ebf0
> >> Xapic_isr1() at Xapic_isr1+0xa4/frame 0xfffffe011120ebf0
> >> --- interrupt, rip = 0x11f7b11, rsp = 0x7fffffff8b50, rbp =
0x7fffffff8b80 ---
> >> KDB: enter: panic
> >> [ thread pid 72149 tid 100102 ]
> >> Stopped at kdb_enter+0x3e: movq $0,kdb_why
> >> db>
> >
> >Hmmm. Maybe do 'show lapic' and 'show apic' in ddb and paste that here?
>
> sorry about the delay...
>
> db> show lapic
> lapic ID = 2
> version = 1.0
> max LVT = 5
> SVR = ff (enabled)
> TPR = 00
> In-service Interrupts:
Hmm, this is empty. It should not be empty. :(
Never the less, the panic is further down than I thought it was. The system
thinks it had a valid IRQ that required an ithread to be scheduled, but when
it went to schedule the ithread, there was no thread to schedule:
static int
intr_event_schedule_thread(struct intr_event *ie)
{
struct intr_entropy entropy;
struct intr_thread *it;
struct thread *td;
struct thread *ctd;
struct proc *p;
/*
* If no ithread or no handlers, then we have a stray interrupt.
*/
if (ie == NULL || TAILQ_EMPTY(&ie->ie_handlers) ||
ie->ie_thread == NULL)
return (EINVAL);
Does it get a crashdump if you try?
--
John Baldwin
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201312131620.25107.jhb>
