Bug 7627
Summary: | realtek r8169 performance decreased on 2.6.19 | ||
---|---|---|---|
Product: | Drivers | Reporter: | Hugues Freville (hugues.freville) |
Component: | Network | Assignee: | Francois Romieu (romieu) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | bunk |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.19 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
r8169 changes from 2.6.18.3 to 2.6.19
little patch re-sending TxEnb/RxEnb first Typo: device enable registers must not be accessed twice |
Description
Hugues Freville
2006-12-03 10:29:04 UTC
Created attachment 9729 [details]
r8169 changes from 2.6.18.3 to 2.6.19
The tarball includes the changes from 2.6.18.3 to 2.6.19. Actually 2.6.18.3
does not differ from 2.6.18 with relation to the r8169.c driver. The patches
are numbered in the order in which they should be applied.
Can you do a binary search to identify the first (resp. last) broken (resp
working) patch ?
--
Ueimor
Hello, just made some test, incrementaly patching r8169.c from 2.6.18.3 last working patch : 03 first broken patch : 04 i'll look at the 04 patch content, trying to understand the changes i just activated debug in r8169.c loading patchlevel3 and then patchlevel4, i'm not able to see differences dmesg after loading patchlevel3: r8169 Gigabit Ethernet driver 2.2LK-NAPI loaded ACPI: PCI Interrupt 0000:01:06.0[A] -> Link [APC1] -> GSI 16 (level, low) -> IRQ 217 r8169: mac_version == RTL_GIGA_MAC_VER_E (0002) r8169: phy_version == RTL_GIGA_PHY_VER_E (0000) eth2: Identified chip type is 'RTL8169s/8110s'. eth2: RTL8169 at 0xffffc20000028000, 00:e0:4c:31:7d:2d, IRQ 217 r8169: mac_version == RTL_GIGA_MAC_VER_E (0002) r8169: phy_version == RTL_GIGA_PHY_VER_E (0000) r8169: MAC version != 0 && PHY version == 0 or 1 r8169: Do final_reg2.cfg r8169: Set MAC Reg C+CR Offset 0x82h = 0x01h r8169: <6>r8169: Set MAC Reg C+CR Offset 0xE0. Bit-3 and bit-14 MUST be 1 dmesg after loading patchlevel4: r8169 Gigabit Ethernet driver 2.2LK-NAPI loaded ACPI: PCI Interrupt 0000:01:06.0[A] -> Link [APC1] -> GSI 16 (level, low) -> IRQ 217 r8169: mac_version = 0x02 r8169: phy_version == RTL_GIGA_PHY_VER_E (0000) eth2: RTL8169s/8110s at 0xffffc20000028000, 00:e0:4c:31:7d:2d, IRQ 217 r8169: mac_version = 0x02 r8169: phy_version == RTL_GIGA_PHY_VER_E (0000) r8169: MAC version != 0 && PHY version == 0 or 1 r8169: Do final_reg2.cfg r8169: Set MAC Reg C+CR Offset 0x82h = 0x01h r8169: <6>r8169: Set MAC Reg C+CR Offset 0xE0. Bit-3 and bit-14 MUST be 1 Created attachment 9800 [details]
little patch re-sending TxEnb/RxEnb first
Hello,
i got something :-)
The patch is really simple,
i don't understand all card configuration function
but my understanding is that the line :
RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb);
was move from first to last issue command in function rtl8169_hw_start
moving back the command in first position solved my speed problem
do you know why this line was moved ?
thank you
Created attachment 9861 [details]
Typo: device enable registers must not be accessed twice
Sorry for the delay. I have been a bit busy.
Can you try the attached patch on top of 2.6.20-rc1 ?
It should _really_ do the same thing as Realtek's driver this time.
--
Ueimor
Hello, i've just patch, build and test 2.6.20-rc1 speed is ok, got about 620Mbit/s thank you, Fix has been included in mainline under id 81f4e6c190a0fa016fd7eecaf76a5f95d121afc2 : http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=81f4e6c190a0fa016fd7eecaf76a5f95d121afc2 It is available in 2.6.20-rc3. -- Ueimor |