Subject: Re: -current kernel panic last week
To: Bill Studenmund <wrstuden@netbsd.org>
From: Michael <macallan18@earthlink.net>
List: port-macppc
Date: 12/20/2004 14:35:27
Hello,
> The kernel booted, got to the point of scanning scsi busses, failed to
> find any of the four SCSI devices, then reported:
>
> panic Stuck interupt 00001000/00001000
Ah, that's the paranoia panic - it ext_intr() loops more than 16 times with the same IRQ asserted and you're running a DIAGNOSTICS kernel this will bite.
The stuck interrupt is virq 12, which doesn't help us much, but Allen will surely be interested in this :)
Please do this to mapirq() in extintr.c:
virq[irq] = v;
+ printf("mapping IRQ %d to virq %d\n",irq,v);
return v;
so we can see which real IRQ is mapped to virq 12.
It may also help to update the macppc portion from cvs, there were a few commits in the last few days.
Hmm, I see a problem in the code - if we interrupt on a high ipl we can get stuck if there's a level-triggered IRQ with a lower priority - we'd endlessly mark it as pending but find it again in GC's level register on every loop.
I think for now it would be best to just leave the loop instead of panic()ing.
good luck
Michael