I have the same problem with my Dell Dimension 2350 with an Intel 82801 motherboard on a Debian Etch (testing) Linux system:
Code:
# uname -a
Linux salon 2.6.15.2 #1 PREEMPT Thu Aug 30 23:52:20 EDT 2007 i686 GNU/Linux
with the same BCM4401 ethernet card:
Code:
salon:~# lspci -vv -s 01:09.0
01:09.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01)
Subsystem: Dell Unknown device 8127
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort+ <TAbort- <MAbort- >SERR- <PERR-
Latency: 32
Interrupt: pin A routed to IRQ 20
Region 0: Memory at e6002000 (32-bit, non-prefetchable) [size=8K]
[virtual] Expansion ROM at e5020000 [disabled] [size=16K]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=2 PME-
The curious thing is, I found that
the ethernet card conflicts with the Nvidia MX4000 graphics device. I get the same errors in my log, and my rates go down to zero and recover back slowly:
Code:
Aug 31 10:59:40 salon kernel: b44: eth0: Link is down.
Aug 31 10:59:43 salon kernel: b44: eth0: Link is up at 100 Mbps, full duplex.
Aug 31 10:59:43 salon kernel: b44: eth0: Flow control is on for TX and on for RX.
only when I move things on the screen! For example, during a transfer test, if I press enter and make the gnome-terminal scroll once, I get the errors. Otherwise I get full 100Mbps from the interface. I
never get the errors if I switch to one of the consoles for the same test.
I figured it must have something to do with my IRQ settings:
Code:
salon:~# cat /proc/interrupts
CPU0
0: 4653606 IO-APIC-edge timer
1: 6678 IO-APIC-edge i8042
8: 0 IO-APIC-edge rtc
9: 0 IO-APIC-level acpi
14: 66618 IO-APIC-edge ide0
15: 41447 IO-APIC-edge ide1
16: 7 IO-APIC-level uhci_hcd:usb1
17: 59595 IO-APIC-level uhci_hcd:usb2
18: 0 IO-APIC-level uhci_hcd:usb3
19: 25 IO-APIC-level ehci_hcd:usb4
20: 5341165 IO-APIC-level Intel 82801DB-ICH4, eth0, nvidia
NMI: 0
LOC: 4654119
ERR: 0
MIS: 0
which had three devices (eth + grfx + IDE cont.) on IRQ 20. After struggling with all types of ACPI kernel parameters to no avail, I had to switch PCI slots of the graphics card to get a different configuration:
Code:
salon:~# cat /proc/interrupts
CPU0
0: 1910295 IO-APIC-edge timer
1: 3604 IO-APIC-edge i8042
8: 0 IO-APIC-edge rtc
9: 0 IO-APIC-level acpi
14: 13982 IO-APIC-edge ide0
15: 16823 IO-APIC-edge ide1
16: 27414 IO-APIC-level uhci_hcd:usb1, wlan0
17: 28503 IO-APIC-level uhci_hcd:usb2
18: 144530 IO-APIC-level uhci_hcd:usb3, nvidia
19: 25 IO-APIC-level ehci_hcd:usb4
20: 858715 IO-APIC-level Intel 82801DB-ICH4, eth0
NMI: 0
LOC: 1910438
ERR: 0
MIS: 0
which had no effect on fixing my original problem with b44! So here I'm begging to hear what you have to say about this.
I tried the following things, but got no result:
- I also tried turning off the flow control using ethtool. I actually tried all things I can change with ethtool: reducing the rate, full/half duplex, ring buffers, etc.
- Although the b44 driver v0.97 I am using is the official driver supported by Broadcom and it is included in the kernel I use, I downloaded the newest driver v1.00g, which improved my maximal rates, but did not fix the problem.
- As you can see from my uname line above that my kernel was compiled as a preemptible desktop kernel, which I though may have something to do with the kernel's response time to ethernet events. So I tried compiling my kernel as a server (non-preemptible), but did not help the problem
My graphics card is an Nvidia MX4000 (GeForce4) PCI card (not AGP! The motherboard has no AGP slots! cheap Dell computer
Code:
salon:~# lspci -vv -s 01:06.0
01:06.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 4000 AGP 8x] (rev c1) (prog-if 00 [VGA])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 248 (1250ns min, 250ns max)
Interrupt: pin A routed to IRQ 18
Region 0: Memory at e4000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at d8000000 (32-bit, prefetchable) [size=128M]
[virtual] Expansion ROM at e5000000 [disabled] [size=128K]
Capabilities: [60] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
with the nvidia driver 1.0.8776-3.
Here's the output of my lspci for completeness:
Code:
salon:~# lspci
00:00.0 Host bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (rev 03)
00:02.0 Display controller: Intel Corporation 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 82)
00:1f.0 ISA bridge: Intel Corporation 82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801DB (ICH4) IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 02)
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 02)
01:04.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)
01:06.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 4000 AGP 8x] (rev c1)
01:09.0 Ethernet controller: Broadcom Corporation BCM4401 100Base-T (rev 01)
Any ideas?
P.S. I have another graphics card on the computer so I may try switching to it. But I would probably prefer buying another ethernet card than doing that.
Thanks...