Re: r259072 is not a happy camper...

From: John Baldwin <jhb_at_freebsd.org>
Date: Fri, 13 Dec 2013 16:20:24 -0500
On Friday, December 13, 2013 3:36:37 pm Poul-Henning Kamp wrote:
> In message <201312091216.04052.jhb_at_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
Received on Fri Dec 13 2013 - 21:17:32 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:45 UTC