On Mon, 1 Oct 2007, Linus Torvalds wrote:The r8169 nic performance regression is still there. 2.6.22: send 82MB/s, receive 86MB/s 2.6.23-rc9: send 32MB/s, receive 98MB/s I debugged this with Francois Romieu but haven't heard from him since testing his fixes. I attached a patch from him which is a partial revert of commit 6dccd16b7c2703e8bbf8bca62b5cf248332afbe2. With this patch I get 93MB send and 97MB receive and I have been running it for a week but I don't know if the patch has any downsides on other systems. //T From 34875931ba2e473e2867d941980131edd609dbe4 Mon Sep 17 00:00:00 2001 From: Francois Romieu <romieu@fr.zoreil.com> Date: Wed, 26 Sep 2007 23:44:03 +0200 Subject: [PATCH] r8169: more revert Part of 6dccd16b7c2703e8bbf8bca62b5cf248332afbe2. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> --- drivers/net/r8169.c | 16 +++++++++++++--- 1 files changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index cb4c412..6d8611c 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c @@ -1905,7 +1905,11 @@ static void rtl_hw_start_8169(struct net_device *dev) rtl_set_rx_max_size(ioaddr); - rtl_set_rx_tx_config_registers(tp); + if ((tp->mac_version == RTL_GIGA_MAC_VER_01) || + (tp->mac_version == RTL_GIGA_MAC_VER_02) || + (tp->mac_version == RTL_GIGA_MAC_VER_03) || + (tp->mac_version == RTL_GIGA_MAC_VER_04)) + rtl_set_rx_tx_config_registers(tp); tp->cp_cmd |= rtl_rw_cpluscmd(ioaddr) | PCIMulRW; @@ -1926,6 +1930,14 @@ static void rtl_hw_start_8169(struct net_device *dev) rtl_set_rx_tx_desc_registers(tp, ioaddr); + if ((tp->mac_version != RTL_GIGA_MAC_VER_01) && + (tp->mac_version != RTL_GIGA_MAC_VER_02) && + (tp->mac_version != RTL_GIGA_MAC_VER_03) && + (tp->mac_version != RTL_GIGA_MAC_VER_04)) { + RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb); + rtl_set_rx_tx_config_registers(tp); + } + RTL_W8(Cfg9346, Cfg9346_Lock); /* Initially a 10 us delay. Turned it into a PCI commit. - FR */ @@ -1940,8 +1952,6 @@ static void rtl_hw_start_8169(struct net_device *dev) /* Enable all known interrupts by setting the interrupt mask. */ RTL_W16(IntrMask, tp->intr_event); - - RTL_W8(ChipCmd, CmdTxEnb | CmdRxEnb); } static void rtl_hw_start_8168(struct net_device *dev) -- 1.5.3.2 -
| Greg Kroah-Hartman | [PATCH 007/196] Chinese: add translation of stable_kernel_rules.txt |
| David Miller | Re: [PATCH] Stop pmac_zilog from abusing 8250's device numbers. |
| Mitch Bradley | Re: [PATCH 1/2] OLPC: Add support for calling into Open Firmware |
| Anders | PROBLEM: high load average when idle |
git: | |
| Elijah Newren | Trying to use git-filter-branch to compress history by removing large, obsolete bi... |
| Linus Torvalds | irc usage.. |
| Luke Lu | git-svn questions: how to clone/init non-standard layout branches/tags? |
| Alex Riesen | Re: git-fast-import |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| Todd Pytel | IDE or SCSI virtual disks for VMWare image? |
| Chris Tankersley | Dell PERC 3/Di - No Disks Found |
| Sam Fourman Jr. | Asus Striker Extreme does not support 4GB memory |
| Theodore Ts'o | Re: Splitting comp.os.linux |
| David Gabrius | Re: NT vs Linux (was: Re: truth or dare) |
| Doug Evans | Re: Stabilizing Linux |
| Theodore Ts'o | Re: demand paging: proposal |
| magical mounts | 12 hours ago | Linux kernel |
| Problem in scim in Fedora 9 | 13 hours ago | Linux general |
| The new Western Digital power saving drives | 13 hours ago | Hardware |
| Battery Maximizer Software | 1 day ago | Linux kernel |
| windows folder creation surprise | 1 day ago | Windows |
| Firewall | 2 days ago | OpenBSD |
| IP layer send packet | 2 days ago | Linux kernel |
| dtrace for linux available | 3 days ago | Linux kernel |
| Unable to mount ramdisk image using UBoot while upgrading to 2.6.15 kernel for a MPC8540 based target | 3 days ago | Linux kernel |
| RealTek RTL8169 - can't connect | 3 days ago | NetBSD |
