Hi,
as I have mentioned to linux-kernel, this is perfectly reproducible: receiving
70 MB/s or more freezes my laptop (Dell Vostro, amd64, 6 GB RAM, 8x Intel Core
i7 CPU Q 740 @ 1.73GHz) completely, sometimes within seconds, sometimes only
after a minute.
Watching the normal console I get loads of
r8169 0000:13:00.0: eth0: link up
r8169 0000:13:00.0: eth0: link up
[...]
one message about every 1-2 seconds (sometimes even 2 per second) while
network is active on 2.6.37.6. Up to the latest kernel (3.0.1) this freeze
happens. However, 2.6.32.28 works with no problems, and it doesn't show those
"eth0: link up" messages. I haven't tried kernels between .32 and .37.
lspci says:
13:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI
Express Gigabit Ethernet controller (rev 03)
The solution with 2.6.37 and above: use the r8168 module from the realtek
website. I have tested it with >30 GB at rates of 112 MB/s and experienced no
freezes anymore.
If you need any other information or help, please let me know.
cheers,
Michael
--
Sambodha: The Return of True Self-Knowledge
Yes. There is enough data for me to reproduce the bug with the
exact same chipset.
I can not generate a single rx error and the driver refuses to crash :o/
Can you apply the patch below on top of 3.1.0-rc3 and see if it makes
a difference ?
Thanks.
From: Michael Brade <hidden> Date: 2011-09-11 20:16:58
On Tuesday 23 August 2011 15:17:26 Francois Romieu wrote:
Francois Romieu [off-list ref] :
[...]
quoted
Yes. There is enough data for me to reproduce the bug with the
exact same chipset.
I can not generate a single rx error and the driver refuses to crash :o/
Can you apply the patch below on top of 3.1.0-rc3 and see if it makes
a difference ?
Sorry for the delay, I have had only two days for email in the last few weeks
and additionally kernel.org was and still is down.
Does it have to be 3.1.0-rc3 or is 3.0.1 ok as well? If so, I have another bad
news: 3.0.1 still crashes with this patch. It took me a lot longer to crash it
but eventually it did happen. Not sure why it took longer, I guess I didn't
generate enough throughput.
If you want me to use 3.1.0 then we'll have to wait until git.kernel.org is
back...
thanks,
Michael
Does it have to be 3.1.0-rc3 or is 3.0.1 ok as well ?
:o(
Almost any release may exhibit the bug. The attached patch (#0003)
should be a better candidate as an official fix though.
If so, I have another bad news: 3.0.1 still crashes with this patch.
It took me a lot longer to crash it but eventually it did happen.
Not sure why it took longer, I guess I didn't generate enough throughput.
It sure sucks from a user experience viewpoint but it is not _that_ bad.
Are the symptoms in any way different or do you still notice more-or-less
periodic link-up messages and no real network traffic ?
If you want me to use 3.1.0 then we'll have to wait until git.kernel.org is
back...
https://github.com/torvalds/linux.git is available in the meantime.
You will want the patch below as well if you try 3.1-rc6.
[PATCH] r8169: don't reset software ring indexes after disabling hardware Rx.
Bad things happen when the driver resets ring indexes after disabling
hardware Rx (and Tx) in the RxFIFOOver event recovery path of the irq
handler while it races with the NAPI Rx processing method.
Ring indexes init is now done before enabling hardware Rx / Tx.
NB: this is not a straight candidate for -stable since it is coupled
with commit 92fc43b4159b518f5baae57301f26d770b0834c9 (July 11).
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Hayes <redacted>
---
drivers/net/r8169.c | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
From: Michael Brade <hidden> Date: 2011-09-14 21:36:20
On Tuesday 13 September 2011 10:11:26 you wrote:
Michael Brade [off-list ref] :
[...]
quoted
Does it have to be 3.1.0-rc3 or is 3.0.1 ok as well ?
:
:o(
Almost any release may exhibit the bug. The attached patch (#0003)
should be a better candidate as an official fix though.
ok, good news: I did not experience any freeze anymore even though I
transfered 60 GB. And I applied both of your patches and
- if (status & RxFOVF) {
- rtl8169_schedule_work(dev, rtl8169_reset_task);
- dev->stats.rx_fifo_errors++;
- }
quoted
If so, I have another bad news: 3.0.1 still crashes with this patch.
It took me a lot longer to crash it but eventually it did happen.
Not sure why it took longer, I guess I didn't generate enough throughput.
It sure sucks from a user experience viewpoint but it is not _that_ bad.
I disagree - I actually lose data because I mount my data and backups with
iSCSI and exactly then it crashes.
Are the symptoms in any way different or do you still notice more-or-less
periodic link-up messages and no real network traffic ?
dmesg looks like this:
[ 1611.380420] r8169 0000:13:00.0: eth0: link up
[ 1611.995417] r8169 0000:13:00.0: eth0: link up
[ 1612.323050] r8169 0000:13:00.0: eth0: link up
[ 1612.574016] r8169 0000:13:00.0: eth0: link up
[ 1613.450630] r8169 0000:13:00.0: eth0: link up
[ 1613.929383] r8169 0000:13:00.0: eth0: link up
[ 1614.950939] r8169 0000:13:00.0: eth0: link up
[ 1615.699660] r8169 0000:13:00.0: eth0: link up
[ 1616.005507] r8169 0000:13:00.0: eth0: link up
[ 1616.746199] r8169 0000:13:00.0: eth0: link up
[ 1617.879670] r8169 0000:13:00.0: eth0: link up
[ 1618.461433] r8169 0000:13:00.0: eth0: link up
so yes but what do you mean with "no real network traffic"? I still get
100 MB/s.
cheers,
Michael
ok, good news: I did not experience any freeze anymore even though I
transfered 60 GB. And I applied both of your patches and
- if (status & RxFOVF) {
- rtl8169_schedule_work(dev, rtl8169_reset_task);
- dev->stats.rx_fifo_errors++;
- }
It should not be necessary to remove this part : the status mask is
supposed to take care of it. One of my patches is wrong if this part
needs to go away.
[...]
quoted
Are the symptoms in any way different or do you still notice more-or-less
periodic link-up messages and no real network traffic ?
dmesg looks like this:
[ 1611.380420] r8169 0000:13:00.0: eth0: link up
[ 1611.995417] r8169 0000:13:00.0: eth0: link up
[ 1612.323050] r8169 0000:13:00.0: eth0: link up
[ 1612.574016] r8169 0000:13:00.0: eth0: link up
I will have to figure why there are so much of theses messages.
[...]
so yes but what do you mean with "no real network traffic"? I still get
100 MB/s.
100 MB/s as 100 Mbyte/s on a gigabit link or 100 Mbit/s on a {gigabit / fast}
ethernet link ?
Thanks.
--
Ueimor
From: Michael Brade <hidden> Date: 2011-09-15 10:27:22
On Thursday 15 September 2011 02:03:32 Francois Romieu wrote:
Michael Brade [off-list ref] :
[...]
quoted
ok, good news: I did not experience any freeze anymore even though I
transfered 60 GB. And I applied both of your patches and
- if (status & RxFOVF) {
- rtl8169_schedule_work(dev,
rtl8169_reset_task); -
dev->stats.rx_fifo_errors++;
- }
It should not be necessary to remove this part : the status mask is
supposed to take care of it. One of my patches is wrong if this part
needs to go away.
ok, I only removed it because you told me so the first time.
[...]
quoted
so yes but what do you mean with "no real network traffic"? I still get
100 MB/s.
100 MB/s as 100 Mbyte/s on a gigabit link or 100 Mbit/s on a {gigabit /
fast} ethernet link ?
100 Mbytes on a gigabit link, so almost 100% usage (with ups and downs, of course; maybe
between 90 MB/s and 112 MB/s).
thanks,
Michael