Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Mar 1997 22:34:58 -0700
From:      Steve Passe <smp@csn.net>
To:        cr@jcmax.com (Cyrus Rahman)
Cc:        smp@freebsd.org
Subject:   Re: System locks up with APIC_IO enabled 
Message-ID:  <199703140534.WAA22011@Ilsa.StevesCafe.com>
In-Reply-To: Your message of "Thu, 13 Mar 1997 20:32:04 EST." <9703140132.AA02640@corona.jcmax.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,
> A few days ago I downloaded the 3.0-SMP code and tried it out on a Gigabyte
> GA586DX motherboard with 2 pentium-200's.
> 
> The code works extremely well and it's pretty impressive to see what the
> box can do.  The kernel works fine under very considerable loads, e.g. large
> make's, cpu-intensive loading, etc.
> 
> But there is a problem that occurs while I stream in lots of data from an
> SMC 100mbit ethernet card while the cpu's are busy.  Namely, if I generate
> an interrupt from the ISA bus the system freezes up completely with some
> regularity.  Moving the PS/2 mouse or using the sound card are both pretty
> good ways of doing this.
> 
> The problem doesn't occur if I stream data in through the same SMC card at
> 10mbit/sec, or (at least, not as often) if the cpu's aren't busy.
> 
> The problem also doesn't occur with the UP kernel or if APIC_IO isn't
> enabled.
> 
> Not being that familiar with FreeBSD (I last did any serious kernel work on
> the PDP-11 and Vax), I'm a bit baffled about how to go about tracking the
> problem down.  I haven't figured out any way of examining the state of the
> system after it locks up, or even of generating a crash dump.  I can't
> invoke the kernel debugger while the system is locked because it appears
> that the keyboard interrupts are masked.
> 
> So I'm writing for two reasons - first, to mention that there does still
> appear to be at least one disruptive problem with the APIC_IO code, and
> second, to ask if anyone has any ideas for how I might go about locating
> the problem.

from a mailing in the archive:
----------------------------------- cut -----------------------------------
>J Wunsch <j@uriah.heep.sax.de> writes:
>   Brian, if you got physical access to the box, try placing a simple
>   card into the PC that hooks ISA pins A1/B1 to a pushbutton.  Pushing
>   it will cause an NMI (``IO channel check condition''), hopefully
>   leaving you a coredump.
>
>Anyone with a good source of ready-made cards?

I hate to suggest this, since it is both risky and a dangerous hack,
but if you can get the case off, and have a paper clip, an NMI is just
a moment away.  Bend the paper clip into a wedge shape at the end, then
short the two ISA "pins" closest to the rear end of the PC.

Don't try this at home, then blame me if it fries your motherboard!  I
have done it many a time myself, but I certainly can't guarantee it.  It's
those pesky endless loops after "cli".

Paper clip drawing (don't laugh!):

--------------------\
                     \
                     /
                ----/

Except, make it more pointy, so that it fits into the card slot, and
makes good connection.


Slot:

+-------------+ +------------------------------------a+
|             | |                                     |
+-------------+ +------------------------------------b+

Short the last two pins a and b ---------------------^
----------------------------------- cut -----------------------------------

I DEFINATELY suggest the switch method, have it set up ready to go, then
run your experiment.  push the button when the system wedges and you hopefully
will get a panic.  don't try this unless you understand the process and
are comfortable with it.  That unused turbo switch might be just the
thing for the job.

There is experimental code in the APIC INTerrupt section that attempts
to avoid blocking INTs unless it has to.  Unfortunately although this is
my area of responsibility I don't have an SMP machine or code up at this
point, so I can't be a lot of help...  The area you will probably want
to poke around in is i386/isa: vector.s, isa.c, icu.s (if my memory is
any good)  ping me with any clues you gather and maybe something will
click...
--
Steve Passe	| powered by 
smp@csn.net	|            SMP FreeBSD




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703140534.WAA22011>