[tulip] Problems with IRQs on multiport cards

Jonathan Earle jearle@nortelnetworks.com
Wed, 13 Sep 2000 13:20:47 -0500


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C01DAF.566F4930
Content-Type: text/plain;
	charset="iso-8859-1"

> -----Original Message-----
> From: Donald Becker [mailto:becker@scyld.com]
> 
> On Wed, 13 Sep 2000, Jonathan Earle wrote:
> 
> > Can the individual ports on a Zynx 4 port card be assigned 
> unique IRQs (even
> > via a dirty hack)?
> 
> The INT-to-IRQ mapping is unique to the specific motherboard. 
>  Only the motherboard BIOS can set up the mapping, including configuring
the PCI
> bridge on the multiport card.

What do you mean by INT to IRQ mapping?  I thought that an INT(errupt?) and
an IRQ were the same thing, yes?

The reason I asked was that the code for the de4x5 driver had a function to
request an IRQ (called from the init code), and perhaps I read it
incorrectly, but it appeared as though one could pick an IRQ (say 4) and
then request that from the BIOS (essentially determining via the BIOS, if
the IRQ was free).  I tried hacking around in there, but it didn't work (I
didn't get the IRQ I specifically wanted).

> The BIOS may have set up an alternate APIC map, so turning on 
> the APIC code may result in different IRQ map.
> 
> It may also be possible to use an ACPI-language entry point 
> to the BIOS to change the IRQ mapping, but this is error prone.

Hmm... I'm not sure I understand any of this. 

> >  We're noticing a problem with dropped packets due to,
> > what I interpret as being the problem, IRQ 
> conflict/contention.  With higher
> > bitrates, I've noticed than not all of the packets which 
> enter the box via
> > one port on the Zynx card, leave the box via another port 
> if the two ports
> > share the same IRQ.  If lower bitrates are used, the 
> problem appears to
> > diminish.  We have up to two of these cards in the same box.
> > 
> > Kernel version used is 2.4.0-test4.
> 
> Verify that the interrupt count is increasing for each port.  
> It may be that only eth0 is generating interrupts.

How do I verify the interrupt count - 'cat /proc/interrupt'?  If so, the
counts are increasing, however, eth0, eth1 and eth4 (eth1 is the traffic
ingress and eth4 is the egress) are all on the same IRQ.  Eth0 is actually a
builtin 3COM 59x port but doesn't carry a lot of traffic.  Eth1-4 are on the
multiport card, and the count for the IRQ associated with eth3 (eth2 is not
configured) increments as well as the count for eth0/1/4.

Cheers!
Jon

------_=_NextPart_001_01C01DAF.566F4930
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">



RE: [tulip] Problems with IRQs on multiport cards



> -----Original Message-----
> From: Donald Becker [mailto:becker@scyld.com]
>
> On Wed, 13 Sep 2000, Jonathan Earle = wrote:
>
> > Can the individual ports on a Zynx 4 port = card be assigned
> unique IRQs (even
> > via a dirty hack)?
>
> The INT-to-IRQ mapping is unique to the = specific motherboard.
>  Only the motherboard BIOS can set up the = mapping, including configuring the PCI
> bridge on the multiport card.

What do you mean by INT to IRQ mapping?  I = thought that an INT(errupt?) and an IRQ were the same thing, = yes?

The reason I asked was that the code for the de4x5 = driver had a function to request an IRQ (called from the init code), = and perhaps I read it incorrectly, but it appeared as though one could = pick an IRQ (say 4) and then request that from the BIOS (essentially = determining via the BIOS, if the IRQ was free).  I tried hacking = around in there, but it didn't work (I didn't get the IRQ I = specifically wanted).

> The BIOS may have set up an alternate APIC map, = so turning on
> the APIC code may result in different IRQ = map.
>
> It may also be possible to use an ACPI-language = entry point
> to the BIOS to change the IRQ mapping, but this = is error prone.

Hmm... I'm not sure I understand any of this.

> >  We're noticing a problem with dropped = packets due to,
> > what I interpret as being the problem, IRQ =
> conflict/contention.  With higher
> > bitrates, I've noticed than not all of the = packets which
> enter the box via
> > one port on the Zynx card, leave the box = via another port
> if the two ports
> > share the same IRQ.  If lower = bitrates are used, the
> problem appears to
> > diminish.  We have up to two of these = cards in the same box.
> >
> > Kernel version used is 2.4.0-test4.
>
> Verify that the interrupt count is increasing = for each port. 
> It may be that only eth0 is generating = interrupts.

How do I verify the interrupt count - 'cat = /proc/interrupt'?  If so, the counts are increasing, however, = eth0, eth1 and eth4 (eth1 is the traffic ingress and eth4 is the = egress) are all on the same IRQ.  Eth0 is actually a builtin 3COM = 59x port but doesn't carry a lot of traffic.  Eth1-4 are on the = multiport card, and the count for the IRQ associated with eth3 (eth2 is = not configured) increments as well as the count for = eth0/1/4.

Cheers!
Jon

------_=_NextPart_001_01C01DAF.566F4930--