Bug 718736 - rtl8192ce: Wi-fi speed drops down after some heavy usage
rtl8192ce: Wi-fi speed drops down after some heavy usage
Status: RESOLVED WONTFIX
Classification: openSUSE
Product: openSUSE 12.1
Classification: openSUSE
Component: Kernel
RC 1
32bit SUSE Other
: P5 - None : Critical (vote)
: RC 1
Assigned To: Jiri Bohac
E-mail List
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-09-18 05:59 UTC by Konstantin Burov
Modified: 2014-06-27 15:40 UTC (History)
2 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---
coolo: SHIP_STOPPER-


Attachments
Wireshark dump captured on laptop with issue (46.43 KB, application/octet-stream)
2011-12-17 18:22 UTC, Victor Grischenko
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Konstantin Burov 2011-09-18 05:59:24 UTC
User-Agent:       Mozilla/5.0 (X11; Linux i686; rv:6.0.2) Gecko/20100101 Firefox/6.0.2

I have a lenovo x220 laptop here with Realtek wi-fi module.

# lspci -nn | grep Real
03:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter [10ec:8176] (rev 01)

I've noticed that it's speed drops down to approximately 1Mbit/s under heavy load. For exmaple if I start to download a torrent file or jsut do speedtest.net testing, firstly it transkmits data on my ISP maximum speed (about 20MBit/s), then, after few seconds, transmission rate goes down.

It's not an ISP issue, cause on ethernet everything is o.k.

Reproducible: Always

Steps to Reproduce:
1. Start downloading a big file
2. Notice, how download speed decreases over time
Actual Results:  
Speed is drastically slow

Expected Results:  
Speed should not go down.
Comment 1 Larry Finger 2011-09-18 14:21:19 UTC
Please try the following:

sudo /sbin/modprobe -rv rtl8192ce
sudo /sbin/modprobe -v rtl8192ce ips=0


That will disable power save. Does it help?
Comment 2 Konstantin Burov 2011-09-18 14:27:56 UTC
(In reply to comment #1)
> Please try the following:
> 
> sudo /sbin/modprobe -rv rtl8192ce
> sudo /sbin/modprobe -v rtl8192ce ips=0
> 
> 
> That will disable power save. Does it help?

I've just tried it, no luck.
Comment 3 Larry Finger 2011-09-18 15:29:08 UTC
Running the standard 12.1 MS5 kernel (3.0.0-4-desktop) and connecting to speedtest.net, I get the following:

Down                Up

16.1               0.95
21.6               0.95
11.6               0.95
12.8               0.95

All numbers are in Mbps. As my ISP only guarantees 10 down and 1 up, I am getting full speed.

This is on an 802.11n wireless connection to a Netgear WND3300 AP. When I use nerperf to connect to a server that is wired to the router, I get:

TCP_MAERTS Test:  69.21 70.37 62.46 72.46 65.84 73.38 35.93 63.67 72.86 73.23
Results: max 73.38, min 35.93. Mean 65.94(10.71)

TCP_STREAM Test:  87.31 86.94 87.95 88.68 88.97 88.59 88.16 89.34 72.27 89.29
Results: max 89.34, min 72.27. Mean 86.75(4.89)

TCP_SENDFILE Test:  89.14 88.66 88.56 89.33 89.13 88.73 87.60 86.56 88.59 88.70
Results: max 89.33, min 86.56. Mean 88.50(0.79)

A second run got

TCP_MAERTS Test:  43.74 71.54 71.36 74.48 74.29 73.80 73.90 70.40 73.76 73.81
Results: max 74.48, min 43.74. Mean 70.11(8.89)

TCP_STREAM Test:  88.51 89.75 72.16 89.55 89.54 88.58 88.97 89.47 88.92 88.09
Results: max 89.75, min 72.16. Mean 87.35(5.09)

TCP_SENDFILE Test:  89.87 89.35 89.45 89.12 71.85 89.15 89.05 89.08 89.41 89.31
Results: max 89.87, min 71.85. Mean 87.56(5.24)


MAERTS is receiving - the others are transmitting.

Each of the individual measurements is a 10 second sample.

What is your AP? What kind of connection?

Is there any possibility of your setting up a local test like mine? Is there another computer on your network?
Comment 4 Konstantin Burov 2011-09-18 23:36:04 UTC
(In reply to comment #3)
> What is your AP? What kind of connection?
> 
> Is there any possibility of your setting up a local test like mine? Is there
> another computer on your network?

My AP is Asus WL520gc and connection is 802.11g (54MBit/sec) with WPA-Personal Authentication (I've tried WEP auth instead, no changes so far).

I'm pretty sure that it's not an AP problem, for there are other devices connected to the AP and they do not have any problems. I have two more laptops (Lenovo u330 and Asus EEE PC Seashell, both runnnin OpenSuse 11.4) connected and a couple of android-based smartphones, all show stable maxed results on speedtest.net. 

I'll do the netperf test later today and post results here.
Comment 5 Konstantin Burov 2011-09-19 13:06:54 UTC
Here is what I get running netperf. The server is running on another laptop connected to the same AP.

linux:/home/linux # netperf -H 192.168.0.5 -t TCP_SENDFILE -f M -D 1.0
TCP SENDFILE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.5 (192.168.0.5) port 0 AF_INET : demo
Interim result: 0.46 MBytes/s over 1.09 seconds
Interim result: 0.42 MBytes/s over 1.00 seconds
Interim result: 0.32 MBytes/s over 1.50 seconds
Interim result: 0.52 MBytes/s over 1.02 seconds
Interim result: 0.45 MBytes/s over 1.14 seconds
Interim result: 0.50 MBytes/s over 1.19 seconds
Interim result: 0.46 MBytes/s over 1.09 seconds
Interim result: 0.45 MBytes/s over 1.11 seconds
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    MBytes/sec  

 87380  16384  16384    10.33       0.44   

linux:/home/linux # netperf -H 192.168.0.5 -t TCP_STREAM -f M -D 1.0
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.5 (192.168.0.5) port 0 AF_INET : demo
Interim result:    0.49 MBytes/s over 1.68 seconds ending at 1316469853.493
Interim result:    0.55 MBytes/s over 1.03 seconds ending at 1316469854.523
Interim result:    0.50 MBytes/s over 1.09 seconds ending at 1316469855.613
Interim result:    0.44 MBytes/s over 1.14 seconds ending at 1316469856.751
Interim result:    0.61 MBytes/s over 1.05 seconds ending at 1316469857.799
Interim result:    0.54 MBytes/s over 1.13 seconds ending at 1316469858.926
Interim result:    0.51 MBytes/s over 1.08 seconds ending at 1316469860.007
Interim result:    0.54 MBytes/s over 1.18 seconds ending at 1316469861.187
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    MBytes/sec  

 87380  16384  16384    11.32       0.47   

linux:/home/linux # netperf -H 192.168.0.5 -t TCP_MAERTS -f M -D 1.0
MIGRATED TCP MAERTS TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.5 (192.168.0.5) port 0 AF_INET : demo
Interim result:    0.12 MBytes/s over 1.00 seconds ending at 1316469867.041
Interim result:    0.11 MBytes/s over 1.05 seconds ending at 1316469868.089
Interim result:    0.15 MBytes/s over 1.06 seconds ending at 1316469869.145
Interim result:    0.11 MBytes/s over 1.29 seconds ending at 1316469870.437
Interim result:    0.11 MBytes/s over 1.01 seconds ending at 1316469871.443
Interim result:    0.14 MBytes/s over 1.00 seconds ending at 1316469872.444
Interim result:    0.11 MBytes/s over 1.23 seconds ending at 1316469873.674
Interim result:    0.13 MBytes/s over 1.24 seconds ending at 1316469874.910
Interim result:    0.13 MBytes/s over 1.03 seconds ending at 1316469875.940
Interim result:    0.11 MBytes/s over 1.19 seconds ending at 1316469877.125
Recv   Send    Send                          
Socket Socket  Message  Elapsed              
Size   Size    Size     Time     Throughput  
bytes  bytes   bytes    secs.    MBytes/sec  

 87380  16384  16384    11.64       0.12
Comment 6 Konstantin Burov 2011-09-19 13:28:23 UTC
Here is same test but with server connected to the AP by ethernet:

1-st run:

linux:/home/linux # netperf -H 192.168.0.100 -t TCP_STREAM -D 1.0 -l 100
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.100 (192.168.0.100) port 0 AF_INET : demo
Interim result:   26.59 10^6bits/s over 1.01 seconds ending at 1316470928.572
Interim result:   25.40 10^6bits/s over 1.05 seconds ending at 1316470929.620
Interim result:   26.18 10^6bits/s over 1.04 seconds ending at 1316470930.656
Interim result:   27.66 10^6bits/s over 1.06 seconds ending at 1316470931.713
Interim result:   28.67 10^6bits/s over 1.04 seconds ending at 1316470932.755
Interim result:   27.48 10^6bits/s over 1.05 seconds ending at 1316470933.809
Interim result:   28.99 10^6bits/s over 1.03 seconds ending at 1316470934.840

2-nd run:
linux:/home/linux # netperf -H 192.168.0.100 -t TCP_STREAM -D 1.0 -l 10
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.100 (192.168.0.100) port 0 AF_INET : demo
Interim result:    4.68 10^6bits/s over 1.93 seconds ending at 1316471190.155
Interim result:    4.54 10^6bits/s over 1.04 seconds ending at 1316471191.195
Interim result:    4.92 10^6bits/s over 1.04 seconds ending at 1316471192.235
Interim result:    3.53 10^6bits/s over 1.37 seconds ending at 1316471193.608
Interim result:    3.41 10^6bits/s over 1.04 seconds ending at 1316471194.645
Interim result:    4.85 10^6bits/s over 1.11 seconds ending at 1316471195.753

Notice how on second run speed dropped down.
Comment 7 Konstantin Burov 2011-09-19 13:28:55 UTC
Is there anything else I can do to help diagnose the problem?
Comment 8 Konstantin Burov 2011-09-19 13:32:29 UTC
Dunno if that's needed, but still.. I run a live USB stick with 12.1 Milestone 5.

> Linux 3.0.0-4-default i686
> openSUSE 12.1 Milestone 5 (i586)
Comment 9 Konstantin Burov 2011-09-20 02:54:47 UTC
FYI, I see the same issue running OpenSuse 11.4 with Thumbleweed updates (kernel-desktop 3.0.4-43.1 i586).
Comment 10 Larry Finger 2011-09-20 03:20:13 UTC
I managed to see the effect twice when using my 802.11g connection, but it is not easily reproduced.

What I did see is that the TX performance is ~2 Mbps while RX is ~8 Mbps. Both should be in the 14 to 27 Mbps range. I have sent Email to the Chinese group that wrote the driver asking if their systems also show the same effect, and some questions regarding debugging.
Comment 11 Stephan Kulow 2011-10-18 09:24:06 UTC
don't play around with prios, it's for the developer
Comment 12 Konstantin Burov 2011-10-25 21:45:51 UTC
Verified it on 12.1 RC 1. The problem still persists.
Comment 13 Larry Finger 2011-10-25 21:59:55 UTC
Could you use wireshark on your other laptop to capture the traffic between rtl8192ce and the AP after the slowdown happens? That way we might be able to see why the slowdown happens.
Comment 14 Konstantin Burov 2011-10-25 22:17:48 UTC
I'd be happy to. Could you give me some more information on what exactly I need to do? (I've never used wireshark before).


(In reply to comment #13)
> Could you use wireshark on your other laptop to capture the traffic between
> rtl8192ce and the AP after the slowdown happens? That way we might be able to
> see why the slowdown happens.
Comment 15 Larry Finger 2011-10-26 03:17:11 UTC
You will need to install wireshark and start it as root using 'kdesu wireshark' if you use KDE or 'gnomesu wireshark' if you use Gnome. You can then select the wireless device to capture the packets from the air. Save the file and add it to this bug.

If wireshark does not collect any packets, then you might try the program kismet. It may work when wireshark does not. The file it produces is Kismet*.pcap.
Comment 16 Konstantin Burov 2011-10-26 03:19:34 UTC
(In reply to comment #15)
> You will need to install wireshark and start it as root using 'kdesu wireshark'
> if you use KDE or 'gnomesu wireshark' if you use Gnome. You can then select the
> wireless device to capture the packets from the air. Save the file and add it
> to this bug.
> 
> If wireshark does not collect any packets, then you might try the program
> kismet. It may work when wireshark does not. The file it produces is
> Kismet*.pcap.

Am I correctly understand that I need to run wireshark not on the laptop which have the problem, but on another laptop connected to the same AP?
Comment 17 Larry Finger 2011-10-26 15:19:05 UTC
Yes. That way we see what is on the air and be able to see any delays in ACKs, etc. The second laptop does not need to be connected to any AP - it just needs to have a wireless interface run in monitor mode.
Comment 18 Victor Grischenko 2011-12-17 15:37:54 UTC
I have the same issue after upgrading from 11.4 to 12.1 on my HP 530. But with other card and other driver:

lspci -nn | grep Wi
10:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection [8086:4222] (rev 02)

I tried to boot from KDE Live USB Stick and get the same issue. What kind of traffic should I capture with wireshark?
Comment 19 Larry Finger 2011-12-17 17:17:02 UTC
As it happens for you with Intel hardware, some problem with either AP or the wireless MAC layer seems to be indicated, not the wireless driver.

When the slowdown occurs, a few frames of the traffic would be helpful to check what the actual transmission rate is at that point.
Comment 20 Victor Grischenko 2011-12-17 18:14:45 UTC
Wireshark on other laptop doesn't see no traffic between my OpenSuse box and router. Maybe the reason is that I don't use AP but router with WPA2 or that wireshark is installed on Windows 7? Can traffic captured on my laptop be helpful?

It cant' be the problem on the router:
1) The issue happened right after update
2) Other laptop works on full-speed Wi-Fi
Comment 21 Victor Grischenko 2011-12-17 18:22:02 UTC
Created attachment 467966 [details]
Wireshark dump captured on laptop with issue
Comment 22 Larry Finger 2011-12-17 19:47:35 UTC
That wireshark dump shows a great many packets with TCP checksum errors. The resulting retransmits are likely the cause of the slowdown.

I need to investigate more, but I am not sure if either mac80211 or rtl8192ce do anything but pass the TCP info without changing any part of it.
Comment 23 Victor Grischenko 2011-12-17 20:01:25 UTC
How could I give you more information?
Comment 24 Larry Finger 2011-12-18 00:00:32 UTC
I'm not sure about the capture. I don't see any of the wireless data in them, only the TCP data.

I'm also not sure of the details for the Intel driver. You might try the compat-wireless package to see if that helps.
Comment 25 Victor Grischenko 2011-12-18 08:00:27 UTC
I couldn't find compat-wireless in 12.1 repos. So I switched to Tumbleweed using this (http://en.opensuse.org/SDB:Change_from_12.1_to_Tumbleweed) tutorial, installed compat-wireless-kmp-desktop and compat-wireless-scripts/.

After reboot the issue didn't dissapear. Compat-wireless has unresolved dependency to ksym and I just ignored it.
Comment 26 Konstantin Burov 2012-01-08 07:01:48 UTC
I've tested the issue on 3.2.0 Kernel and it's still there.
Comment 27 Jiri Bohac 2014-03-07 15:50:54 UTC
Sorry for neglecting this bug for a long time. 12.1 has gone out of support in the mean time. Is the issue still present in 12.3 or newer?
Comment 28 Jiri Bohac 2014-06-27 15:40:24 UTC
Please re-open if you still see this in 12.3 or newer. Thank you.