RTL8111 PCI Express Gigabit driver r8169 produces slow file transfers

2 messages, 2 authors, 2007-09-27 · open the first message on its own page

RTL8111 PCI Express Gigabit driver r8169 produces slow file transfers

From: Achim Frase <hidden>
Date: 2007-09-27 13:14:08

Dear Linux r8169 crew,

I have got your e-mail address from the modinfo of the r8196 module.

I am not sure if this is the right way to contact you, but I hope you
could help me.

The current driver in Kernel 2.6.22 produces very bad network speeds.
I only geht 100 kb/s.

Maybe you could take a look at this bug-report at launchpad.net.

https://bugs.launchpad.net/ubuntu/+source/linux-ubuntu-modules-2.6.22/+bug/114171

The latest driver from realtek is working very well.
ftp://210.51.181.211/cn/nic/r8168-8.003.00.tar.bz2

What I would like to know, is, if the latest realtek driver will make it
into the kernel, or if the problems with the r8196 module are already
solved.

If there are any questions feel free to contact me.

Thanks in Advanced

Achim Frase

Re: RTL8111 PCI Express Gigabit driver r8169 produces slow file transfers

From: Francois Romieu <romieu@fr.zoreil.com>
Date: 2007-09-27 17:25:05

Achim Frase [off-list ref] :
[...]
but I hope you could help me.
Yes. Please try any of:
- current 2.6.23-git
- 2.6.23-rc8 + patch below
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index b85ab4a..c921ec3 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -1228,7 +1228,10 @@ static void rtl8169_hw_phy_config(struct net_device *dev)
 		return;
 	}
 
-	/* phy config for RTL8169s mac_version C chip */
+	if ((tp->mac_version != RTL_GIGA_MAC_VER_02) &&
+	    (tp->mac_version != RTL_GIGA_MAC_VER_03))
+		return;
+
 	mdio_write(ioaddr, 31, 0x0001);			//w 31 2 0 1
 	mdio_write(ioaddr, 21, 0x1000);			//w 21 15 0 1000
 	mdio_write(ioaddr, 24, 0x65c7);			//w 24 15 0 65c7
@@ -2567,6 +2570,15 @@ static void rtl8169_tx_interrupt(struct net_device *dev,
 		    (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)) {
 			netif_wake_queue(dev);
 		}
+		/*
+		 * 8168 hack: TxPoll requests are lost when the Tx packets are
+		 * too close. Let's kick an extra TxPoll request when a burst
+		 * of start_xmit activity is detected (if it is not detected,
+		 * it is slow enough). -- FR
+		 */
+		smp_rmb();
+		if (tp->cur_tx != dirty_tx)
+			RTL_W8(TxPoll, NPQ);
 	}
 }
 
-- 
Ueimor
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help