Re: e100 PCI bridge problem

Kok, Auke
2007-07-13T22:41:58Z

William Montgomery wrote:
> Thanks for responding. I am very interested to find the source of this
> problem.
>
> Kok, Auke wrote:
>
>> William Montgomery wrote:
>>
>>> In an earlier post to the list I described a hard lockup condition
>>> that occurs on linux kernels 2.4.22, 2.6.13, and 2.6.17 when using
>>> a 4 port 10/100 fast ethernet card. The lockup is easily repeatable
>>> and occurs on 2 out of 3 computers.
>>>
>>> Further testing has revealed that the lockup can be prevented on all
>>> computers by making sure the card is installed on the primary PCI bus.
>>> If the card is installed in a slot on the secondary PCI bus (behind a
>>> PCI to PCI bridge) the lockup occurs.
>>
>> sounds like int-A/B/C/D routing issues
>
> The strange thing is that all the ports on the card work fine for a few
> minutes, then when some condition (as yet unknown) occurs the system
> locks up hard. I am currently using a PCI bus analyzer to capture bus
> activity just prior to the lockup to try and find out what leads up to
> this condition.

are you running any form of irqbalance, either in-kernel (bad) or the userspace
(better) one?

>>> Are there any PCI tuning registers that I can tweak to get around
>>> this problem? Any changes I could make to the e100 driver to fix this?
>>
>> this issue might be resolvable by quirking the bridgee chips and
>> adjusting any APIC where needed. Unfortunately I don't know much about
>> this but it's physically not possible from the e100 driver. The
>> special (non-intel) card that has these 4 ports onboard contains a
>> bridge chip itself which explains the issues. Even a BIOS issue could
>> be the cause here.
>
> I am aware of the bridge chip on the card but not sure what you mean
> when you say this explains the issues? I sure would like to figure out
> a way around this.

irq routing in linux may not be the same as in windows. I have no idea how to
compare them either (dmesg will show the linux setup, but I don't know how to
retreive this info under linux).

> The PCI info follows:
> 00:00.0 Host bridge: Intel Corp. 82845G/GL[Brookdale-G]/GE/PE DRAM
> Controller/Host-Hub Interface (rev 03)
> 00:02.0 VGA compatible controller: Intel Corp.
> 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (rev 03)
> 00:1d.0 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #1 (rev 02)
> 00:1d.1 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #2 (rev 02)
> 00:1d.2 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #3 (rev 02)
> 00:1d.7 USB Controller: Intel Corp. 82801DB (ICH4) USB2 EHCI
> Controller (rev 02)
> 00:1e.0 PCI bridge: Intel Corp. 82801BA/CA/DB/EB/ER Hub interface to
> PCI Bridge (rev 82)
> 00:1f.0 ISA bridge: Intel Corp. 82801DB (ICH4) LPC Bridge (rev 02)
> 00:1f.1 IDE interface: Intel Corp. 82801DB (ICH4) Ultra ATA 100
> Storage Controller (rev 02)
> 00:1f.3 SMBus: Intel Corp. 82801DB/DBM (ICH4) SMBus Controller (rev 02)
> 01:08.0 Ethernet controller: Intel Corp. 82801BD PRO/100 VE (CNR)
> Ethernet Controller (rev 82)
> 01:0c.0 PCI bridge: Pericom Semiconductor: Unknown device 8150 (rev 02)
> 02:06.0 PCI bridge: Hint Corp HB6 Universal PCI-PCI bridge
> (non-transparent mode) (rev 15)
> 03:04.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]
> (rev 08)
> 03:05.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]
> (rev 08)
> 03:06.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]
> (rev 08)
> 03:07.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100]
> (rev 08)
>
>> Perhaps the linuxfirmwarekit will reveal more information. In any
>> case, fixing this in software would be a gigantic effort.
>>
> I will look into that on Monday and report what I find. It seems like
> it is premature to say how much effort the fix will take since the
> problem is not yet known? At least not known to me yet. I would just
> like to find out what parameters on the bridge/bridges might affect this
> problem and how to modify them.

I personally have no idea and am not knowledgeable enough on this issue, sorry :)

Auke

>
>> Auke
>>