On Friday, December 13, 2013 3:36:37 pm Poul-Henning Kamp wrote:
> In message <201312091216.04052....@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
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to