Argh, Stray interrupts 2006

John Von Essen john at essenz.com
Sat Jun 3 11:49:32 PDT 2006


These comments are really unfair.

You have to consider that people who work on projects like DFly or 
FreeBSD - they dont have access to every single motherboard every made. 
And the Bios quirks can be like fixing leaky pipes. You fix a leak in 
one spot, and it causes a new leak somewhere else.

People who decide to use OS's like FreeBSD, NetBSD, DFly, etc.,. have 
to understand that compatibility is not gauranteed. If you want that, 
go with Solaris or Windows.

I just built a system for a customer. I had to go through 3 different 
motherboards. The first two simple wouldn't work on FreeBSD. Things 
have changed, the old PII and PIII days are gone. Chipsets and Bios's 
are getting more and more complex, and more separate. Shit, back in the 
late 90's - several motherboard manufactures all used the same Bios and 
all used the same 2 or 3 available chipsets. Nowaday's, every 
motherboard bios is different, every chipset is different, motherboards 
themselves are phased out faster. I bought some real nice Tyan single 
P4 boards back in 8/05, 64bit PCI - real nice - real compatible. Tyan 
stopped making them after 4 months, and replaced them with something 
else with a new chipset. I sure hope nobody wasted time in tweaking 
code for those boards!

-John

On Jun 3, 2006, at 2:16 PM, Danial Thom wrote:



--- Matthew Dillon <dillon at xxxxxxxxxxxxxxxxxxxx>
wrote:
:Thats not really a solution as I don't want a
:system thats processing 100s of interrupts per
:second for no reason. I previously reported
that
:these were gone, but now that I put another
card
:in the box (a dual port intel ethernet),
they're
:back.
:
:I know I've been told that its a bios
:configuration problem, however I don't get
stray
:interrupts if I pop a FreeBSD disk on the
exact
:same hardware. So why is it a misconfiguration
in
:DFLY but not in FreeBSD?
:
:DT
    I like how you always twist things so it's
somehow our fault.
    The BIOS/MB issue is that some motherboards
route all system interrupts
    to a single PIC IRQ line in order to allow
the BIOS to implement things
    like USB keyboard support and NetBoot
during boot.  The chipset
    manufacturers do not publish how to turn it
off, and on some motherboards
    there is no way to turn it off short of
turning off the PIC itself,
    and even then it is sometimes not possible
to turn it off.
    It might be possible to bypass the issue
using the SMP + APIC_IO option,
    but chipset vendors have also had the keen
idea of doing the same sort
    of shit for IOAPIC interrupts too.  Some of
Intel's own chipsets completely
    break IOAPIC pin masking by causing the
chip to route to a default
    vector if a pin is masked.  Sometimes it is
possible to bypass
    the problem by not using IOAPIC interrupt
masking (and sometimes it isn't),
    and sometimes it is possible to bypass the
problem by masking the
    pin representing the default vector.  Or
not.
    FreeBSD has recently moved away from using
the PIC alltogether, primarily
    by using the LAPIC timer instead of the
i2854.  I think its a good idea,
    but it represents quite a chunk of work.
It may or may not solve this
    particular issue (it is just one of many
related to broken BIOSes and
    motherboards that pop up).
    In anycase, if you want to solve the
problem the source code is right
    there, start coding!  You seem to want to
simplify problems down to
    one-liner's, and blame us for all your woes
in the process, but the
    reality is that it is a far more complex
issue then you seem to want to
    believe.
You can call it "twisting", but your OS is based
on Freebsd 4.8, and it doesn't happen with
FreeBSD 4.9. So unless its something that they
fixed in 4.9, its likely something that you folks
changed or do differently. In fact I've never
seen so MANY stray interrupts on any box on any
OS in the 23 years or so that I've been using one
un*x or another. Not to be negative, but those
are the facts.
My view is that its the responsibility of the
programmer to mask hardware quirks and bios
"bugs". You don't "explain" that an ethernet
controller has a bug so it locks up all the time;
you figure out a way to make it so that it either
doesn't lock up or so that it is restarts as
tranparently as possible. Lazy programmers
complain about how difficult it is to do things,
and good ones come up with solutions. Its fairly
clear that whatever the bug is, you've made it
worse, or removed some work-around. As more and
more people use DFLY, you'll spend more and more
time explaining to people that its not your
fault. Its probably less effort in the long run
to just figure something out that corrects it.
Turning on SMP stopped the stray irq messages. I
get one stray IRQ message immediately after
loading the acpi.ko module, and then no more. If
you think of something that might fix it in UP
mode, I'm happy to try it out.
Is there a performance cost of running an smp
kernel on a UP machine? I don't intend to run
DFLY UP anyway, but just interested in knowing if
it shuts off the SMP modes when only 1 cpu is
detected.
DT

Its been suggested that I turn acpi off, and
there doesn't seem to be a toggle in the bios,
and dfly insists on loading the module
__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com






More information about the Users mailing list