Subject: Re: explanation for "new technology" needed
To: None <netbsd-users@netbsd.org>
From: Martijn van Buul <martijnb@atlas.ipv6.stack.nl>
List: netbsd-users
Date: 07/23/2005 13:09:49
["Followup-To:" header set to gmane.os.netbsd.general.]
It occurred to me that Wojciech Puchar wrote in gmane.os.netbsd.general:
> with fxp in second PCI slot (which is pci2 dev 7) pin 10 of ioapic0 is 
> allocated. with fxp on last slot (pci2 dev 10) too pin 10 of ioapic0 is 
> allocated. still nothing strange but
>
> 1) while ioapic has 24 interrupts why always fxp and usb get pin 10 and 
> same interrupt while lots of interrupts are unused?!!!

Well, I'm not too well informed about ioapic and how amd64 deals with that,
but what I *think* is happening is that your BIOS is configuring the
devices. You might be able to tell the BIOS which PCI slot gets what 
IRQ number.

> 2) why when fxp is on second slot i get interrupt flood - no matter if 
> there's any traffic on fxp CPU is 70% loaded and i see 90000 
> interrupts/second on pin 10 with sysstat.

Not too sure, but it might indicate an issue with the driver. I do know
that the first PCI slot is usually treated slightly differently; it's meant
for low-latency interrupts, and designed to be used by high-speed (1GB+)
network cards and firewire controllers. If I'm not mistaken, it gets a 
higher interrupt priority than the other ones. So, your card might be
upset about not getting its interrupt served on time, when it's not in
slot #1.

> HOW to allocate ANOTHER irq/pin for fxp or usb?!
>
> BIOS doesn't offer any option for this

Look further; most of them do have an option to specify PCI interrupts[1].
In any rate, your BIOS isn't going to know anything about your specific
network card, and it probably won't allow you to change the IRQ number
of the USB interface. 

Martijn

[1]  Then again, that's judging from x86, not x86-64..