Description of problem: The RTL8101E nic using the r8169 kernel module does not correctly negotiate on a 1000 network. The same card and kernel work when attached to a 100 network. The card only supports 100, but appears to attempt 1000 when connected to a network supporting such speeds. Version-Release number of selected component (if applicable): $ uname -r 2.6.9-78.ELsmp $ /sbin/modinfo r8169 filename: /lib/modules/2.6.9-78.ELsmp/kernel/drivers/net/r8169.ko version: 2.2LK-NAPI 28C0A741D66B3A832996226 license: GPL parm: ignore_parity_err:Ignore PCI parity error as target. Default: false parm: debug:Debug verbosity level (0=none, ..., 16=all) parm: use_dac:Enable PCI DAC. Unsafe on 32 bit PCI slot. parm: rx_copybreak:Copy breakpoint for copy-only-tiny-frames parm: media:force phy operation. Deprecated by ethtool (8). description: RealTek RTL-8169 Gigabit Ethernet driver author: Realtek and the Linux r8169 crew <netdev.org> alias: pci:v00001737d00001032sv*sd00000024bc*sc*i* alias: pci:v000016ECd00000116sv*sd*bc*sc*i* alias: pci:v00001259d0000C107sv*sd*bc*sc*i* alias: pci:v00001186d00004300sv*sd*bc*sc*i* alias: pci:v000010ECd00008169sv*sd*bc*sc*i* alias: pci:v000010ECd00008168sv*sd*bc*sc*i* alias: pci:v000010ECd00008167sv*sd*bc*sc*i* alias: pci:v000010ECd00008136sv*sd*bc*sc*i* alias: pci:v000010ECd00008129sv*sd*bc*sc*i* depends: vermagic: 2.6.9-78.ELsmp SMP gcc-3.4 How reproducible: Depends on network link. Steps to Reproduce: 1. Install rhel4.7 with RTL8101E nic. 2. Attach machine to 1000 network. Actual results: The network link is not available. Expected results: A working network card. Additional info: Card details: $ /sbin/lspci -vvv -s 01:00.0 01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E PCI Express Fast Ethernet controller (rev 02) Subsystem: Intel Corporation: Unknown device 0001 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: 0, Cache Line Size 10 Interrupt: pin A routed to IRQ 169 Region 0: I/O ports at 1000 [size=256] Region 2: Memory at 50100000 (64-bit, non-prefetchable) [size=4K] Region 4: Memory at 50000000 (64-bit, prefetchable) [size=64K] Expansion ROM at fffe0000 [disabled] [size=128K] Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [50] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable- Address: 0000000000000000 Data: 0000 Capabilities: [70] Express Endpoint IRQ 1 Device: Supported: MaxPayload 256 bytes, PhantFunc 0, ExtTag- Device: Latency L0s <512ns, L1 <8us Device: AtnBtn- AtnInd- PwrInd- Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported- Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop- Device: MaxPayload 128 bytes, MaxReadReq 512 bytes Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 0 Link: Latency L0s <512ns, L1 <64us Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch- Link: Speed 2.5Gb/s, Width x1 Capabilities: [ac] MSI-X: Enable- Mask- TabSize=2 Vector table: BAR=4 offset=00000000 PBA: BAR=4 offset=00000800 Capabilities: [cc] Vital Product Data Capabilities: [100] Advanced Error Reporting Capabilities: [140] Virtual Channel Capabilities: [160] Device Serial Number 00-e0-4c-36-00-00-00-01 A workaround is available using module options to force the driver to 100 full. $ grep r8169 /etc/modprobe.conf alias eth0 r8169 options r8169 media=0x08 Attempts to produce a similar result with ethtool were unsuccessful.
Could you please try my latest test kernel? I don't have an access to r810x hardware now. Kernel is available at: http://people.redhat.com/ivecera/rhel-5-r8169/ Thanks, Ivan
Hi Ivan (In reply to comment #1) > Could you please try my latest test kernel? I don't have an access to r810x > hardware now. > > Kernel is available at: > http://people.redhat.com/ivecera/rhel-5-r8169/ Can you provide rhel4 kernels? Placing rhel5 on this machine would be disruptive to the current testing, although, it can be done later. Thanks, Joe.
Yes, I will post them ASAP.
With rhel 5.2 x86-64 on the same machine, the installer will panic when loading the r8169 driver. To workaround, the nic was disabled in the bios. After install, a similar panic would occur with the default kernel installed (kernel-2.6.18-92.el5) if the nic was reactivated. The top line of the panic was: ... :r8169:rtl8169_init_one+0x3d9/0x9df The provided package kernel-2.6.18-102.el5.r8169.9.x86_64.rpm was installed and the nic now appears to work. The link is established at 100 on a 1000 network without any workaround. Will it be possible to post a rhel4 fix soon? Thanks, Joe.
Also, it may be worth noting that on rhel4 with the modprobe options previously described, the nic still occasionally fails to establish a link. An additional reboot usually clears the issue. This happens only sporadically.
Hello, I have prepared first kernel packages to test. These should solve this issue. Could you please test them? Available at: http://people.redhat.com/ivecera/rhel-4-r8169/
Installed kernel-smp-2.6.9-78.9.EL.r8169.1.x86_64.rpm and removed modprobe workaround. The machine successfully negotiated link on reboot. Is there any reason to expect a performance degradation? Initial testing might show some slow down. Still, things look better. Will continue to test. Thanks, Joe.
The previously mentioned performance slowdown was apparently related to a testing issue. Sorry about that. Things continue to look good. Thanks, Joe.
Created attachment 317697 [details] Final patch sent to review
Committed in 78.13.EL . RPMS are available at http://people.redhat.com/vgoyal/rhel4/
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2009-1024.html