Bug 5507 - longhaul driver breaks 8139too
Summary: longhaul driver breaks 8139too
Status: CLOSED DOCUMENTED
Alias: None
Product: Power Management
Classification: Unclassified
Component: cpufreq (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: cpufreq
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-27 13:27 UTC by Ulrich Holeschak
Modified: 2011-07-30 05:14 UTC (History)
3 users (show)

See Also:
Kernel Version: 2.6.13.4
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Ulrich Holeschak 2005-10-27 13:27:52 UTC
Most recent kernel where this bug did not occur: 2.6.11
Distribution: Standard and SUSE
Hardware Environment: VIA82CXXX, no IO-APIC

In kernel version 2.6.13 i have problem with the 8139too ethernet driver. I
always get:

Oct 26 23:47:27 router kernel: NETDEV WATCHDOG: eth2: transmit timed out
Oct 26 23:47:27 router kernel: eth2: Transmit timeout, status 01 0000 0000 media 10.

This was working well in kernel 2.6.11
ACPI is disabled in bios and in the kernel,
i already tried different PCI interrupts for the 8139too device.

My first thought was an interrupt sharing problem of interrupt 11,
but changing the device eth1 and eth2 did not help.

Sorry,
at the moment i can give you only logfiles of SUSE kernels, but i also tried
with standard kernels,
the problem was exacly the same.

Perhaps it is important to mention, that eth0 and eth2 are both bound to bridge br0.

interrupts from kernel 2.6.11, identical to 2.6.13.
router:~ # less /proc/interrupts 
           CPU0       
  0:   78992070          XT-PIC  timer
  1:         90          XT-PIC  i8042
  2:          0          XT-PIC  cascade
  3:      10173          XT-PIC  eth0
  7:      93657          XT-PIC  eth1
  8:          2          XT-PIC  rtc
 10:   19759353          XT-PIC  fcclassic
 11:      29805          XT-PIC  eth2, VIA686A
 12:        362          XT-PIC  i8042
 14:       1483          XT-PIC  ide0
 15:     168049          XT-PIC  ide1
NMI:          0 
LOC:          0 
ERR:          0
MIS:          0


kernel boot 2.6.11:

Inspecting /boot/System.map-2.6.11.4-21.9-ulrich
Loaded 30686 symbols from /boot/System.map-2.6.11.4-21.9-ulrich.
Symbols match kernel version 2.6.11.
No module symbols loaded - kernel modules not enabled.

klogd 1.4.1, log source = ksyslog started.
<4>Linux version 2.6.11.4-21.9-ulrich (geeko@buildhost) (gcc version 3.3.5
20050117 (prerelease) (SUSE Linux)) #4 Wed Oct 26 04:16:09 CEST 2005
<6>BIOS-provided physical RAM map:
<4> BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
<4> BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
<4> BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
<4> BIOS-e820: 0000000000100000 - 0000000010000000 (usable)
<4> BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
<5>0MB HIGHMEM available.
<5>256MB LOWMEM available.
<7>On node 0 totalpages: 65536
<7>  DMA zone: 4096 pages, LIFO batch:1
<7>  Normal zone: 61440 pages, LIFO batch:15
<7>  HighMem zone: 0 pages, LIFO batch:1
<6>DMI 2.3 present.
<4>Allocating PCI resources starting at 10000000 (gap: 10000000:efff0000)
<4>Built 1 zonelists
<4>Kernel command line: BOOT_IMAGE=linux_26_11cf root=100 init=/linuxrc_uh rw
selinux=0 resume=/dev/hda1 showopts
<4>__iounmap: bad address c00fffd9
<4>No local APIC present or hardware disabled
<6>Initializing CPU#0
<4>PID hash table entries: 2048 (order: 11, 32768 bytes)
<4>Detected 1197.226 MHz processor.
<6>Using tsc for high-res timesource
<4>Console: colour dummy device 80x25
<4>Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
<4>Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
<6>Memory: 253984k/262144k available (1970k kernel code, 7668k reserved, 889k
data, 236k init, 0k highmem)
<4>Checking if this processor honours the WP bit even in supervisor mode... Ok.
<7>Calibrating delay loop... 2351.10 BogoMIPS (lpj=1175552)
<6>Security Framework v1.0.0 initialized
<6>SELinux:  Disabled at boot.
<4>Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
<7>CPU: After generic identify, caps: 0380b13d 00000000 00000000 00000000
00000000 00000000 00000000
<6>CPU: L1 I Cache: 64K (32 bytes/line), D cache 64K (32 bytes/line)
<6>CPU: L2 Cache: 64K (32 bytes/line)
<7>CPU: After all inits, caps: 0380b13d 00000000 00000000 00000000 00000000
0000003d 00000000
<4>CPU: Centaur VIA Nehemiah stepping 05
<6>Enabling fast FPU save and restore... done.
<6>Enabling unmasked SIMD FPU exception support... done.
<6>Checking 'hlt' instruction... OK.
<6>checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
<6>Freeing initrd memory: 1700k freed
<6>NET: Registered protocol family 16
<6>EISA bus registered
<6>PCI: PCI BIOS revision 2.10 entry at 0xfb450, last bus=1
<6>PCI: Using configuration type 1
<6>Linux Plug and Play Support v0.97 (c) Adam Belay
<6>PnPBIOS: Scanning system for PnP BIOS support...
<6>PnPBIOS: Found PnP BIOS installation structure at 0xc00fbe80
<6>PnPBIOS: PnP BIOS version 1.0, entry 0xf0000:0xbeb0, dseg 0xf0000
<6>PnPBIOS: 12 nodes reported by PnP BIOS; 12 recorded by driver
<4>PCI: Probing PCI hardware
<4>PCI: Probing PCI hardware (bus 00)
<6>PCI: Via IRQ fixup
<6>PCI: Using IRQ router VIA [1106/0686] at 0000:00:07.0
<4>TC classifier action (bugs to netdev@oss.sgi.com cc hadi@cyberus.ca)
<6>apm: BIOS version 1.2 Flags 0x07 (Driver version 1.16ac)
<6>audit: initializing netlink socket (disabled)
<3>audit(1130363609.992:0): initialized
<4>Total HugeTLB memory allocated, 0
<5>VFS: Disk quotas dquot_6.5.1
<4>Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
<6>Initializing Cryptographic API
<6>PCI: Disabling Via external APIC routing
<6>vesafb: framebuffer at 0xe4000000, mapped to 0xd0880000, using 3072k, total 4096k
<6>vesafb: mode is 1024x768x16, linelength=2048, pages=0
<6>vesafb: protected mode interface info at c000:92a0
<6>vesafb: scrolling: redraw
<6>vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
<4>Console: switching to colour frame buffer device 128x48
<6>fb0: VESA VGA frame buffer device
<7>vga16fb: initializing
<6>vga16fb: mapped to 0xc00a0000
<6>fb1: VGA16 VGA frame buffer device
<6>isapnp: Scanning for PnP cards...
<6>isapnp: No Plug & Play device found
<6>Real Time Clock Driver v1.12
<6>PNP: PS/2 Controller [PNP0303,PNP0f13] at 0x60,0x64 irq 1,12
<6>serio: i8042 AUX port at 0x60,0x64 irq 12
<6>serio: i8042 KBD port at 0x60,0x64 irq 1
<6>Serial: 8250/16550 driver $Revision: 1.90 $ 48 ports, IRQ sharing enabled
<6>io scheduler noop registered
<6>io scheduler anticipatory registered
<6>io scheduler deadline registered
<6>io scheduler cfq registered
<6>Floppy drive(s): fd0 is 1.44M
<6>FDC 0 is a post-1991 82077
<4>RAMDISK driver initialized: 16 RAM disks of 64000K size 1024 blocksize
<6>loop: loaded (max 8 devices)
<6>Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
<6>ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
<6>VP_IDE: IDE controller at PCI slot 0000:00:07.1
<6>VP_IDE: chipset revision 6
<6>VP_IDE: not 100% native mode: will probe irqs later
<6>VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci0000:00:07.1
<6>    ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:DMA, hdb:DMA
<6>    ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
<7>Probing IDE interface ide0...
...
<6>hdb: ATAPI 32X CD-ROM CD-R/RW drive, 2048kB Cache
<6>Uniform CD-ROM driver Revision: 3.20
<4>ide-floppy driver 0.99.newide
<6>mice: PS/2 mouse device common for all mice
<6>input: PC Speaker
<6>EISA: Probing bus 0 at eisa.0
<6>NET: Registered protocol family 2
<6>IP: routing cache hash table of 2048 buckets, 16Kbytes
<4>TCP established hash table entries: 16384 (order: 5, 131072 bytes)
<4>TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
<6>TCP: Hash tables configured (established 16384 bind 16384)
<6>NET: Registered protocol family 1
<7>PM: Checking swsusp image.
<3>swsusp: Suspend partition has wrong signature?
<7>PM: Resume from disk failed.
<5>RAMDISK: Compressed image found at block 0
<6>input: AT Translated Set 2 keyboard on isa0060/serio0
<6>input: ImPS/2 Generic Wheel Mouse on isa0060/serio1
<4>VFS: Mounted root (ext2 filesystem).
<6>Freeing unused kernel memory: 236k freed

syslog 2.6.11:

Oct 26 23:56:31 router kernel: PCI: Found IRQ 3 for device 0000:00:0a.0
Oct 26 23:56:31 router kernel: ne2k-pci.c:v1.03 9/22/2003 D. Becker/P. Gortmaker
Oct 26 23:56:31 router kernel:   http://www.scyld.com/network/ne2k-pci.html
Oct 26 23:56:31 router kernel: PCI: Found IRQ 7 for device 0000:00:09.0
Oct 26 23:56:31 router kernel: eth1: RealTek RTL-8029 found at 0xe800, IRQ 7,
00:50:BF:08:1E:34.
Oct 26 23:56:31 router kernel: 8139too Fast Ethernet driver 0.9.27
Oct 26 23:56:31 router kernel: PCI: Found IRQ 11 for device 0000:00:0f.0
Oct 26 23:56:31 router kernel: PCI: Sharing IRQ 11 with 0000:00:07.5
Oct 26 23:56:31 router kernel: eth2: RealTek RTL8139 at 0xd0bba000,
00:c1:26:02:54:d1, IRQ 11
Oct 26 23:56:31 router kernel: eth2:  Identified 8139 chip type 'RTL-8139C'
Oct 26 23:56:31 router kernel: eth0: resetting device...
Oct 26 23:56:31 router kernel: eth0: uploading firmware...
...
Oct 26 23:56:31 router kernel: eth0: resetting device...
Oct 26 23:56:31 router kernel: eth0: uploading firmware...
Oct 26 23:56:31 router kernel: eth0: firmware version: 1.0.3.0
Oct 26 23:56:31 router kernel: eth0: firmware upload complete
Oct 26 23:56:31 router kernel: eth0: interface reset complete
Oct 26 23:56:31 router kernel: eth2: link up, 100Mbps, full-duplex, lpa 0x41E1
...
Oct 26 23:56:31 router kernel: Bridge firewalling registered
Oct 26 23:56:31 router kernel: eth2: Promiscuous mode enabled.
Oct 26 23:56:31 router kernel: device eth2 entered promiscuous mode
Oct 26 23:56:31 router kernel: device eth0 entered promiscuous mode
Oct 26 23:56:31 router kernel: br0: port 2(eth0) entering learning state
Oct 26 23:56:31 router kernel: br0: port 1(eth2) entering learning state
Oct 26 23:56:31 router kernel: PCI: Found IRQ 11 for device 0000:00:07.5
Oct 26 23:56:31 router kernel: PCI: Sharing IRQ 11 with 0000:00:0f.0
Oct 26 23:56:31 router kernel: PCI: Setting latency timer of device 0000:00:07.5
to 64


kernel boot 2.6.13:

Inspecting /boot/System.map-2.6.13.3-ulrich
Loaded 31592 symbols from /boot/System.map-2.6.13.3-ulrich.
Symbols match kernel version 2.6.13.
No module symbols loaded - kernel modules not enabled.

klogd 1.4.1, log source = ksyslog started.
<5>Linux version 2.6.13.3-ulrich (geeko@buildhost) (gcc version 3.3.5 20050117
(prerelease) (SUSE Linux)) #3 Wed Oct 26 04:00:49 CEST 2005
<6>BIOS-provided physical RAM map:
<4> BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
<4> BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
<4> BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
<4> BIOS-e820: 0000000000100000 - 0000000010000000 (usable)
<4> BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
<5>0MB HIGHMEM available.
<5>256MB LOWMEM available.
<7>On node 0 totalpages: 65536
<7>  DMA zone: 4096 pages, LIFO batch:1
<7>  Normal zone: 61440 pages, LIFO batch:31
<7>  HighMem zone: 0 pages, LIFO batch:1
<6>DMI 2.3 present.
<4>Allocating PCI resources starting at 10000000 (gap: 10000000:efff0000)
<4>Built 1 zonelists
<5>Kernel command line: BOOT_IMAGE=linux_26_13 root=302 selinux=0
resume=/dev/hda1 showopts
<4>No local APIC present or hardware disabled
<6>Initializing CPU#0
<4>PID hash table entries: 2048 (order: 11, 32768 bytes)
<4>Detected 1197.078 MHz processor.
<6>Using tsc for high-res timesource
<4>Console: colour dummy device 80x25
<4>Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
<4>Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
<6>Memory: 255624k/262144k available (2007k kernel code, 6032k reserved, 921k
data, 236k init, 0k highmem)
<4>Checking if this processor honours the WP bit even in supervisor mode... Ok.
<4>Calibrating delay using timer specific routine.. 2398.38 BogoMIPS (lpj=4796776)
<6>Security Framework v1.0.0 initialized
<6>SELinux:  Disabled at boot.
<4>Mount-cache hash table entries: 512
<7>CPU: After generic identify, caps: 0380b13d 00000000 00000000 00000000
00000000 00000000 00000000
<6>CPU: L1 I Cache: 64K (32 bytes/line), D cache 64K (32 bytes/line)
<6>CPU: L2 Cache: 64K (32 bytes/line)
<7>CPU: After all inits, caps: 0380b13d 00000000 00000000 00000000 00000000
0000003d 00000000
<4>CPU: Centaur VIA Nehemiah stepping 05
<6>Enabling fast FPU save and restore... done.
<6>Enabling unmasked SIMD FPU exception support... done.
<6>Checking 'hlt' instruction... OK.
<6>NET: Registered protocol family 16
<6>EISA bus registered
<6>PCI: PCI BIOS revision 2.10 entry at 0xfb450, last bus=1
<6>PCI: Using configuration type 1
<6>Linux Plug and Play Support v0.97 (c) Adam Belay
<6>PnPBIOS: Scanning system for PnP BIOS support...
<6>PnPBIOS: Found PnP BIOS installation structure at 0xc00fbe80
<6>PnPBIOS: PnP BIOS version 1.0, entry 0xf0000:0xbeb0, dseg 0xf0000
<6>PnPBIOS: 12 nodes reported by PnP BIOS; 12 recorded by driver
<4>PCI: Probing PCI hardware
<4>PCI: Probing PCI hardware (bus 00)
<7>Boot video device is 0000:00:0c.0
<6>PCI: Using IRQ router VIA [1106/0686] at 0000:00:07.0
<4>TC classifier action (bugs to netdev@vger.kernel.org cc hadi@cyberus.ca)
<6>PCI: Bridge: 0000:00:01.0
<6>  IO window: disabled.
<6>  MEM window: disabled.
<6>  PREFETCH window: disabled.
<7>PCI: Setting latency timer of device 0000:00:01.0 to 64
<6>apm: BIOS version 1.2 Flags 0x07 (Driver version 1.16ac)
<6>audit: initializing netlink socket (disabled)
<4>audit(1130363187.988:1): initialized
<4>Total HugeTLB memory allocated, 0
<5>VFS: Disk quotas dquot_6.5.1
<4>Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
<6>Initializing Cryptographic API
<6>PCI: Disabling Via external APIC routing
<6>vesafb: framebuffer at 0xe4000000, mapped to 0xd0880000, using 3072k, total 4096k
<6>vesafb: mode is 1024x768x16, linelength=2048, pages=0
<6>vesafb: protected mode interface info at c000:92a0
<6>vesafb: scrolling: redraw
<6>vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
<4>Console: switching to colour frame buffer device 128x48
<6>fb0: VESA VGA frame buffer device
<7>vga16fb: initializing
<6>vga16fb: mapped to 0xc00a0000
<6>fb1: VGA16 VGA frame buffer device
<6>isapnp: Scanning for PnP cards...
<6>isapnp: No Plug & Play device found
<6>Real Time Clock Driver v1.12
<6>PNP: PS/2 Controller [PNP0303,PNP0f13] at 0x60,0x64 irq 1,12
<6>serio: i8042 AUX port at 0x60,0x64 irq 12
<6>serio: i8042 KBD port at 0x60,0x64 irq 1
<6>Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
<6>io scheduler noop registered
<6>io scheduler anticipatory registered
<6>io scheduler deadline registered
<6>io scheduler cfq registered
<6>Floppy drive(s): fd0 is 1.44M
<6>FDC 0 is a post-1991 82077
<4>RAMDISK driver initialized: 16 RAM disks of 64000K size 1024 blocksize
<6>loop: loaded (max 8 devices)
<6>Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
<6>ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
<6>VP_IDE: IDE controller at PCI slot 0000:00:07.1
<6>PCI: Via IRQ fixup for 0000:00:07.1, from 255 to 0
<6>VP_IDE: chipset revision 6
<6>VP_IDE: not 100% native mode: will probe irqs later
<6>VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci0000:00:07.1
<6>    ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:DMA, hdb:DMA
<6>    ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
<7>Probing IDE interface ide0...
...
<6>hdb: ATAPI 32X CD-ROM CD-R/RW drive, 2048kB Cache
<6>Uniform CD-ROM driver Revision: 3.20
<4>ide-floppy driver 0.99.newide
<6>mice: PS/2 mouse device common for all mice
<6>input: PC Speaker
<6>EISA: Probing bus 0 at eisa.0
<6>NET: Registered protocol family 2
<6>input: AT Translated Set 2 keyboard on isa0060/serio0
<4>IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
<4>TCP established hash table entries: 16384 (order: 5, 131072 bytes)
<4>TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
<6>TCP: Hash tables configured (established 16384 bind 16384)
<6>TCP reno registered
<6>TCP bic registered
<6>NET: Registered protocol family 1
<4>Using IPI Shortcut mode
<3>swsusp: Suspend partition has wrong signature?
<5>ReiserFS: hda2: found reiserfs format "3.6" with standard journal
<6>input: ImPS/2 Generic Wheel Mouse on isa0060/serio1
<5>ReiserFS: hda2: using ordered data mode
<5>ReiserFS: hda2: journal params: device hda2, size 8192, journal first block
18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
<5>ReiserFS: hda2: checking transaction log (hda2)
<5>ReiserFS: hda2: Using r5 hash to sort names
<4>VFS: Mounted root (reiserfs filesystem) readonly.
<6>Freeing unused kernel memory: 236k freed

syslog 2.6.13:

Oct 26 23:47:05 router kernel: Loaded prism54 driver, version 1.2
Oct 26 23:47:05 router kernel: PCI: Found IRQ 3 for device 0000:00:0a.0
Oct 26 23:47:05 router kernel: ne2k-pci.c:v1.03 9/22/2003 D. Becker/P. Gortmaker
Oct 26 23:47:05 router kernel:   http://www.scyld.com/network/ne2k-pci.html
Oct 26 23:47:05 router kernel: PCI: Found IRQ 7 for device 0000:00:09.0
Oct 26 23:47:05 router kernel: eth1: RealTek RTL-8029 found at 0xe800, IRQ 7,
00:50:BF:08:1E:34.
Oct 26 23:47:05 router kernel: eth0: resetting device...
Oct 26 23:47:05 router kernel: eth0: uploading firmware...
Oct 26 23:47:05 router kernel: 8139too Fast Ethernet driver 0.9.27
Oct 26 23:47:06 router kernel: PCI: Found IRQ 11 for device 0000:00:0f.0
Oct 26 23:47:06 router kernel: PCI: Sharing IRQ 11 with 0000:00:07.5
Oct 26 23:47:06 router kernel: eth0: firmware version: 1.0.3.0
Oct 26 23:47:06 router kernel: eth0: firmware upload complete
Oct 26 23:47:06 router kernel: eth0: interface reset complete
Oct 26 23:47:06 router kernel: eth0: islpci_close ()
Oct 26 23:47:06 router kernel: eth2: RealTek RTL8139 at 0xd0cc6000,
00:c1:26:02:54:d1, IRQ 11
Oct 26 23:47:06 router kernel: eth2:  Identified 8139 chip type 'RTL-8139C'
....
Oct 26 23:47:07 router kernel: eth0: resetting device...
Oct 26 23:47:07 router kernel: eth0: uploading firmware...
Oct 26 23:47:07 router FaxQueuer[2477]: Copyright (c) 1990-1996 Sam Leffler
Oct 26 23:47:07 router kernel: eth0: firmware version: 1.0.3.0
Oct 26 23:47:07 router FaxQueuer[2477]: Copyright (c) 1991-1996 Silicon
Graphics, Inc.
Oct 26 23:47:07 router kernel: eth0: firmware upload complete
Oct 26 23:47:07 router kernel: eth0: interface reset complete
Oct 26 23:47:07 router kernel: eth2: link up, 100Mbps, full-duplex, lpa 0x41E1
...
Oct 26 23:47:07 router kernel: Bridge firewalling registered
Oct 26 23:47:07 router kernel: eth2: Promiscuous mode enabled.
Oct 26 23:47:07 router kernel: device eth2 entered promiscuous mode
Oct 26 23:47:07 router kernel: device eth0 entered promiscuous mode
Oct 26 23:47:07 router kernel: br0: port 2(eth0) entering learning state
Oct 26 23:47:07 router kernel: br0: port 1(eth2) entering learning state
Oct 26 23:47:07 router kernel: eth0: no IPv6 routers present
Oct 26 23:47:07 router kernel: PCI: Found IRQ 11 for device 0000:00:07.5
Oct 26 23:47:07 router kernel: PCI: Sharing IRQ 11 with 0000:00:0f.0
Oct 26 23:47:07 router kernel: PCI: Setting latency timer of device 0000:00:07.5
to 64
...
Oct 26 23:47:27 router kernel: NETDEV WATCHDOG: eth2: transmit timed out
Oct 26 23:47:27 router kernel: eth2: Transmit timeout, status 01 0000 0000 media 10.
Oct 26 23:47:27 router kernel: eth2: Tx queue start entry 9  dirty entry 5.
Oct 26 23:47:27 router kernel: eth2:  Tx descriptor 0 is 00002000.
Oct 26 23:47:27 router kernel: eth2:  Tx descriptor 1 is 00002000. (queue head)
Oct 26 23:47:27 router kernel: eth2:  Tx descriptor 2 is 00002000.
Oct 26 23:47:27 router kernel: eth2:  Tx descriptor 3 is 00002000.
Oct 26 23:47:27 router kernel: eth2: link up, 100Mbps, full-duplex, lpa 0x41E1
Oct 26 23:47:27 router kernel: eth2: Promiscuous mode enabled.
Comment 1 Ulrich Holeschak 2005-11-01 08:53:33 UTC
For more information i have now enabled the complete logging with ethtool for
the 8139too device.
The result is as follows:

Nov  1 17:31:20 router kernel: eth2: Queued Tx packet size 160 to slot 1.
Nov  1 17:31:51 router kernel: eth2: Queued Tx packet size 160 to slot 2.
Nov  1 17:32:22 router kernel: eth2: Queued Tx packet size 160 to slot 3.
Nov  1 17:32:29 router kernel: NETDEV WATCHDOG: eth2: transmit timed out
Nov  1 17:32:29 router kernel: eth2: Transmit timeout, status 01 0000 0000 media 10.
Nov  1 17:32:29 router kernel: eth2: Tx queue start entry 8  dirty entry 4.
Nov  1 17:32:29 router kernel: eth2:  Tx descriptor 0 is 00002000. (queue head)
Nov  1 17:32:29 router kernel: eth2:  Tx descriptor 1 is 00002000.
Nov  1 17:32:29 router kernel: eth2:  Tx descriptor 2 is 00002000.
Nov  1 17:32:29 router kernel: eth2:  Tx descriptor 3 is 00002000.
Nov  1 17:32:29 router kernel: eth2: link up, 100Mbps, full-duplex, lpa 0x41E1
Nov  1 17:32:29 router kernel: eth2: Promiscuous mode enabled.
Nov  1 17:32:29 router kernel: eth2: Queued Tx packet size 255 to slot 0.
Nov  1 17:32:29 router kernel: eth2: Queued Tx packet size 249 to slot 1.
Nov  1 17:32:53 router kernel: eth2: Queued Tx packet size 160 to slot 2.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 402001, size 0040, cur
0000.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 42 to slot 3.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 604001, size 0060, cur
0044.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 104 to slot 0.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 404001, size 0040, cur
00a8.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 58 to slot 1.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 404001, size 0040, cur
00ec.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 824001, size 0082, cur
0130.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 54 to slot 2.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 58 to slot 3.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status e84001, size 00e8, cur
01b8.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 54 to slot 0.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 155 to slot 1.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 1454001, size 0145,
cur 02a4.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 54 to slot 2.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 196 to slot 3.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status a24001, size 00a2, cur
03f0.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 54 to slot 0.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 93 to slot 1.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 404001, size 0040, cur
0498.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 944001, size 0094, cur
04dc.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 54 to slot 2.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 1514 to slot 3.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 1410 to slot 0.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 404001, size 0040, cur
0574.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 844001, size 0084, cur
05b8.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 54 to slot 1.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 138 to slot 2.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 634001, size 0063, cur
0640.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 93 to slot 3.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 964001, size 0096, cur
06a8.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 161 to slot 0.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 8f4001, size 008f, cur
0744.
Nov  1 17:32:54 router kernel: eth2:  rtl8139_rx() status 8f4001, size 008f, cur
07d8.
Nov  1 17:32:54 router kernel: eth2: Queued Tx packet size 54 to slot 1.
Nov  1 17:33:24 router kernel: eth2: Queued Tx packet size 160 to slot 2.
Nov  1 17:33:55 router kernel: eth2: Queued Tx packet size 160 to slot 3.
Nov  1 17:34:26 router kernel: eth2: Queued Tx packet size 160 to slot 0.
Nov  1 17:34:57 router kernel: eth2: Queued Tx packet size 160 to slot 1.
Nov  1 17:35:05 router kernel: NETDEV WATCHDOG: eth2: transmit timed out
Nov  1 17:35:05 router kernel: eth2: Transmit timeout, status 01 0000 0000 media 10.
Nov  1 17:35:05 router kernel: eth2: Tx queue start entry 26  dirty entry 22.
Nov  1 17:35:05 router kernel: eth2:  Tx descriptor 0 is 00002000.
Nov  1 17:35:05 router kernel: eth2:  Tx descriptor 1 is 00002000.
Nov  1 17:35:05 router kernel: eth2:  Tx descriptor 2 is 00002000. (queue head)
Nov  1 17:35:05 router kernel: eth2:  Tx descriptor 3 is 00002000.
Nov  1 17:35:05 router kernel: eth2: link up, 100Mbps, full-duplex, lpa 0x41E1
Nov  1 17:35:05 router kernel: eth2: Promiscuous mode enabled.
Nov  1 17:35:28 router kernel: eth2: Queued Tx packet size 160 to slot 0.
Nov  1 17:35:34 router kernel: eth2: Queued Tx packet size 255 to slot 1.
Nov  1 17:35:34 router kernel: eth2: Queued Tx packet size 249 to slot 2.

From my point of view i would say, that the device is not getting the transmit
interrupt sometimes, but i may be completetly wrong at this point ...
Comment 2 Ulrich Holeschak 2005-11-01 12:48:30 UTC
Now i have digged a bit deeper, this is what i have found until now:
- Basically the device is able to transmit and receive, but not always.
- Very often the device gets in a state, where it's neiter able to send or
receive. In this state the driver tells the transmit telegram is queued, but you
will never see it on the network. If something is received from the remote side
the interrupt handler is never called.
- If i ping from the local host it's sometimes possible to get multiple
transmit/receive telegrams through, but then device blocks again. After the
timeout and automatic reset transmit/receive is possible again for a short time.
- If i ping from the remote side, normally every telegram get's lost.

I expect that this is not an interrupt problem, because for transmitting the
interrupt is only needed at the end of transmission, but the telegramn is never
send over the network. It must be something else, but what?
Comment 3 Ulrich Holeschak 2005-11-06 15:32:26 UTC
Now i had a bit more time and i made more tests. In this case i used kernel
2.6.14, which has still the same problems.
I used the old (2.6.11) source code for the mii and 8139too kernel modules (with
some small modifications) in the new kernel 2.6.14. The problem is still the same.
This means, the problem is NOT in the 8139too driver, something else (maybe
conceptual) has changed in the kernel.
Comment 4 Ulrich Holeschak 2005-11-07 14:07:31 UTC
Slowly we are getting closer ...
I have switched eth0 and eth2 again, there are interrupts coming from the card
and the interrupt handler is also called. So the interrupt seems no to be the
problem.

Then i have rebooted with "apm=off", and everything works fine!
The problem has something to to with APM but what?
I tried with removing the APM code from the 8139too driver, but this did not help.

At the moment i have processor frequency scaling active, this may be the reason
for the problems. The interesting thing is, that things work better, if the CPU
load is high on the system. Perhaps the CPU frequency scaling has no influence
on the 8139too driver if the CPU load is high ...
Comment 5 Ulrich Holeschak 2005-11-08 01:47:46 UTC
Now i tried disabling the CPU frequency scaling (with APM is still active) and
everything works fine!
So something has changed in the CPU frequency scaling modules that influences
the 8139too driver.
My cpufreq module is "longhaul".
Comment 6 Ulrich Holeschak 2005-11-08 14:32:48 UTC
Now i have found the reason why the 8139too driver fails.
It's caused by overriding the pci bus master mode in the longhaul driver!

I have removed the following blocks of code in the function do_powersave() of
longhaul.c:

        /*
         * get current pci bus master state for all devices
         * and clear bus master bit
         */
        dev = NULL;
        i = 0;
        do {
                dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev);
                if (dev != NULL) {
                        pci_read_config_word(dev, PCI_COMMAND, &pci_cmd);
                        cmd_state[i++] = pci_cmd;
                        pci_cmd &= ~PCI_COMMAND_MASTER;
                        pci_write_config_word(dev, PCI_COMMAND, pci_cmd);
                }
        } while (dev != NULL);

...

        /* restore pci bus master state for all devices */
        dev = NULL;
        i = 0;
        do {
                dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev);
                if (dev != NULL) {
                        pci_cmd = cmd_state[i++];
                        pci_write_config_byte(dev, PCI_COMMAND, pci_cmd);
                }
        } while (dev != NULL);

and everythings works fine! (At least with the 8139too driver).

I expect that some other driver needs this code, so what to do now?
Is there perhaps a different way to achive the same thing in longhaul.c?
Comment 7 Adrian Bunk 2006-04-10 16:38:53 UTC
As a note, the longhaul driver got marked as BROKEN in 2.6.16.2.
Comment 8 Rafa&#322; Bilski 2006-05-01 00:55:42 UTC
> From my point of view i would say, that the device is not getting the
> transmit
> interrupt sometimes, but i may be completetly wrong at this point ...

You are right. Processor is "offline" when frequency is changed. All interrupts
except 0 are masked. PCI bus mastering must also be turn off. That code You
deleted is responsible for halting PCI bus.
For "Processor type and features->Timer frequency" = 100Hz "offline" time is max
1/50s, for 250Hz it is 1/125s and for 1000Hz 1/500s.
Comment 9 Rafa&#322; Bilski 2006-05-01 01:00:40 UTC
Btw. Try to use ACPI not APM.
Comment 10 Natalie Protasevich 2008-03-05 19:01:39 UTC
Any update on this problem? Ulrich, have you tried suggestion in #9?
Thanks.
Comment 11 Ulrich Holeschak 2008-03-11 11:14:59 UTC
Yes i have tried suggestion #9 with no change.
With newer kernel versions i had no problem with the 8139too driver,
but i got instabilities during hard disk access.

I have measured the current consumption of my computer with and without the longhaul driver, i nearly identical. So i did not see any reasion for using driver any more ...

Note You need to log in before you can comment on or make changes to this bug.