cvs commit: src/sys/i386/isa atpic.c

John Baldwin jhb at FreeBSD.org
Wed Nov 19 03:50:18 PST 2003


On 18-Nov-2003 Marius Strobl wrote:
> On Tue, Nov 18, 2003 at 03:54:49PM -0500, John Baldwin wrote:
>> 
>> On 18-Nov-2003 Marius Strobl wrote:
>> > On Tue, Nov 18, 2003 at 09:21:18AM -0500, John Baldwin wrote:
>> >> 
>> >> On 18-Nov-2003 Marius Strobl wrote:
>> >> > On Mon, Nov 17, 2003 at 05:53:14PM -0500, John Baldwin wrote:
>> >> >> 
>> >> >> On 17-Nov-2003 Marius Strobl wrote:
>> >> >> > On Fri, Nov 14, 2003 at 04:21:44PM -0500, John Baldwin wrote:
>> >> >> >> 
>> >> >> >> On 14-Nov-2003 John Baldwin wrote:
>> >> >> >> > jhb         2003/11/14 13:02:49 PST
>> >> >> >> > 
>> >> >> >> >   FreeBSD src repository
>> >> >> >> > 
>> >> >> >> >   Modified files:
>> >> >> >> >     sys/i386/isa         atpic.c 
>> >> >> >> >   Log:
>> >> >> >> >   Always install IDT entries for ATPIC interrupt sources.  The APIC no
>> >> >> >> >   longer uses these interrupt vectors for its ISA interrupt pins, so these
>> >> >> >> >   entries will not be overwritten.  If we get a spurious interrupt from the
>> >> >> >> >   ATPIC when using the APIC, it will be treated as a stray interrupt instead
>> >> >> >> >   of causing a panic.
>> >> >> >> 
>> >> >> >> This should fix all of the "panic: Couldn't get vector from ISR" and
>> >> >> >> trap 30 (reserved) panics.  If you were using older versions of either
>> >> >> >> spurious.patch or atpic.patch, please try reverting them and using
>> >> >> >> plain CVS to see if that fixes your problem.  If not, please let me know.
>> >> >> >> If you get several stray IRQ 7 messages and would like to shut them up,
>> >> >> >> you can try http://www.FreeBSD.org/~jhb/patches/spurious.patch
>> >> >> >> 
>> >> >> > 
>> >> >> > Unfortunately it doesn't fix the type 30 trap triggered by a spurious
>> >> > 
>> >> > Oops, meant stray interrupt...
>> >> > 
>> >> >> > interrupt here (need atpic.patch).
>> >> >> 
>> >> >> Do you get the trap very early?
>> >> >> 
>> >> > 
>> >> > Yes, please see <20031110172540.A29948 at newtrinity.zeist.de> on current@
>> >> > or http://quad.zeist.de/newintr.log (this was with older sources but the
>> >> > problem is still the same after the commit above).
>> >> 
>> >> Can you try www.freebsd.org/~jhb/patches/vm86.patch
>> >> 
>> > 
>> > Looks worse: http://quad.zeist.de/newintr2.log
>> 
>> Well, vm86 is broken but that patch seems to have helped fix that breakage.
>> There is another bug in the handling of stray interrupts.  Can you revert
>> vm86.patch and try this instead:
>> 
>> http://www.FreeBSD.org/~jhb/patches/atpic.patch
>> 
> 
> Works.
> 
>> Assuming that works, you should be able to use
>> 
>> http://www.FreeBSD.org/~jhb/patches/spurious.patch
>> 
>> to quiet the 'stray irq 7' messages.
>> 
> 
> Also works.
> However, as you may have noticed in my boot logs I get 'stray irq 13'
> with the new interrupt code when npx gets probed. I'm aware that your
> spurious.patch only addresses stray irqs 7 and 15, I'm just wondering
> a bit why the co-processor mucks up with the new code...

We poke IRQ 13 to see if it fires in the npx code.  The 7 and 15 magic
is because that is the vectors the 8259A's actually generate when they
generate a spurious interrupt.

-- 

John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


More information about the cvs-src mailing list