Bug 202943 - Realtek 8192ee high ping only without load
Summary: Realtek 8192ee high ping only without load
Status: NEW
Alias: None
Product: Networking
Classification: Unclassified
Component: Wireless (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: networking_wireless@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-03-15 21:25 UTC by aladjev.andrew@gmail.com
Modified: 2019-09-30 12:21 UTC (History)
3 users (show)

See Also:
Kernel Version: 4.20.16
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description aladjev.andrew@gmail.com 2019-03-15 21:25:45 UTC
Hello. I've just bought a cheap adapter TP-Link TL-WN881ND v2 with Realtek 8192ee onboard.

First of all I want to thank Realtek company: device works out of the box without any settings, just plug and play.

My home router TP-Link WDR4300 is working on openwrt. First radio is running on 11ng + HT40. I've tested adapter with iperf3 and it provides about 120-165 mbits. It is enough for me, I don't need high speeds.

The problem is that adapter provides high pings without load. I can give an example:

64 bytes from 192.168.0.5: icmp_seq=1 ttl=64 time=92.4 ms
64 bytes from 192.168.0.5: icmp_seq=2 ttl=64 time=1.80 ms
64 bytes from 192.168.0.5: icmp_seq=3 ttl=64 time=2.24 ms
64 bytes from 192.168.0.5: icmp_seq=4 ttl=64 time=1.47 ms
64 bytes from 192.168.0.5: icmp_seq=5 ttl=64 time=2.23 ms
64 bytes from 192.168.0.5: icmp_seq=6 ttl=64 time=1.95 ms
64 bytes from 192.168.0.5: icmp_seq=7 ttl=64 time=5.60 ms
64 bytes from 192.168.0.5: icmp_seq=8 ttl=64 time=5.76 ms
64 bytes from 192.168.0.5: icmp_seq=9 ttl=64 time=2.96 ms
64 bytes from 192.168.0.5: icmp_seq=10 ttl=64 time=3.64 ms
64 bytes from 192.168.0.5: icmp_seq=11 ttl=64 time=10.9 ms
64 bytes from 192.168.0.5: icmp_seq=12 ttl=64 time=35.5 ms
64 bytes from 192.168.0.5: icmp_seq=13 ttl=64 time=57.9 ms

I've started ping and rsync 1 second after ping. First 92.4 ms ping was before rsync, than rsync provided excellent 2-6 ms pings, than 10.9 ms, 35.5 ms, 57.9 ms bad pings.

I made this test about 10 times. When rsync provides heavy load on adapter - pings are excellent, without load - pings are very bad.

Than I opened drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.c:

swenc, "Set to 1 for software crypto (default 0)"
ips, "Set to 0 to not use link power save (default 1)"
swlps, "Set to 1 to use SW control power save (default 0)"
fwlps, "Set to 1 to use FW control power save (default 1)"
aspm, "Set to 1 to enable ASPM (default 1)"

I've disabled all these power savers:
options rtl8192ee ips=0 swlps=0 fwlps=0 aspm=0

These params give me nothing. I've rebooted and tested them several times. I've checked that these params are active in /sys/module/rtl8192ee/parameters/ before every test.

I see high pings without load and low pings with load. I tried to test it with swenc=0/1. It gives me nothing, same issue.

RTL8192EE may have some hidden power saver that we can't disable. How can we work around it? Thank you.
Comment 1 haritonovsb 2019-08-06 21:35:08 UTC
Hello!
I'd like to report exactly the same situation.
It's strange that the problem didn't get much of attention and support.
]$ lspci | grep Wireless
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8192EE PCIe Wireless Network Adapter
on ad Tp-Link TL-WN881ND rev.2 PCIe x1 card.

All available powersaving-related module options have been tested, it stays the same.
Also tested master branch from https://github.com/lwfinger/rtlwifi_new, still no changes.

]$ uname -a
Linux 5.2.6-arch1-1-ARCH #1 SMP PREEMPT Sun Aug 4 14:58:49 UTC 2019 x86_64 GNU/Linux

]$ lsmod | grep 8192
rtl8192ee             131072  0
btcoexist             217088  1 rtl8192ee
rtl_pci                36864  1 rtl8192ee
rtlwifi               126976  3 rtl_pci,btcoexist,rtl8192ee
mac80211              999424  3 rtl_pci,rtlwifi,rtl8192ee

]$ ping 192.168.88.1
PING 192.168.88.1 (192.168.88.1) 56(84) bytes of data.
64 bytes from 192.168.88.1: icmp_seq=1 ttl=64 time=94.5 ms
64 bytes from 192.168.88.1: icmp_seq=2 ttl=64 time=14.5 ms
64 bytes from 192.168.88.1: icmp_seq=3 ttl=64 time=36.8 ms
64 bytes from 192.168.88.1: icmp_seq=4 ttl=64 time=58.9 ms
64 bytes from 192.168.88.1: icmp_seq=5 ttl=64 time=80.9 ms
64 bytes from 192.168.88.1: icmp_seq=6 ttl=64 time=104 ms
64 bytes from 192.168.88.1: icmp_seq=7 ttl=64 time=24.5 ms
64 bytes from 192.168.88.1: icmp_seq=8 ttl=64 time=46.9 ms
64 bytes from 192.168.88.1: icmp_seq=9 ttl=64 time=68.9 ms
64 bytes from 192.168.88.1: icmp_seq=10 ttl=64 time=90.9 ms
64 bytes from 192.168.88.1: icmp_seq=11 ttl=64 time=11.5 ms
64 bytes from 192.168.88.1: icmp_seq=12 ttl=64 time=33.8 ms
64 bytes from 192.168.88.1: icmp_seq=13 ttl=64 time=55.9 ms
64 bytes from 192.168.88.1: icmp_seq=14 ttl=64 time=77.9 ms
64 bytes from 192.168.88.1: icmp_seq=15 ttl=64 time=44.2 ms
64 bytes from 192.168.88.1: icmp_seq=16 ttl=64 time=21.2 ms
64 bytes from 192.168.88.1: icmp_seq=17 ttl=64 time=43.8 ms
64 bytes from 192.168.88.1: icmp_seq=18 ttl=64 time=65.9 ms
64 bytes from 192.168.88.1: icmp_seq=19 ttl=64 time=87.9 ms
64 bytes from 192.168.88.1: icmp_seq=20 ttl=64 time=8.51 ms
^C
--- 192.168.88.1 ping statistics ---
20 packets transmitted, 20 received, 0% packet loss, time 49ms
rtt min/avg/max/mdev = 8.506/53.563/103.894/28.854 ms

then if I download an archlinux iso at ~70-80 Mbit/s in the background is looks like

]$ ping 192.168.88.1
PING 192.168.88.1 (192.168.88.1) 56(84) bytes of data.
64 bytes from 192.168.88.1: icmp_seq=1 ttl=64 time=1.40 ms
64 bytes from 192.168.88.1: icmp_seq=2 ttl=64 time=2.34 ms
64 bytes from 192.168.88.1: icmp_seq=3 ttl=64 time=1.29 ms
64 bytes from 192.168.88.1: icmp_seq=4 ttl=64 time=1.63 ms
64 bytes from 192.168.88.1: icmp_seq=5 ttl=64 time=1.55 ms
64 bytes from 192.168.88.1: icmp_seq=6 ttl=64 time=2.16 ms
64 bytes from 192.168.88.1: icmp_seq=7 ttl=64 time=4.64 ms
64 bytes from 192.168.88.1: icmp_seq=8 ttl=64 time=1.54 ms
64 bytes from 192.168.88.1: icmp_seq=9 ttl=64 time=2.01 ms
64 bytes from 192.168.88.1: icmp_seq=10 ttl=64 time=1.66 ms
64 bytes from 192.168.88.1: icmp_seq=11 ttl=64 time=1.85 ms
64 bytes from 192.168.88.1: icmp_seq=12 ttl=64 time=1.55 ms
64 bytes from 192.168.88.1: icmp_seq=13 ttl=64 time=1.58 ms
64 bytes from 192.168.88.1: icmp_seq=14 ttl=64 time=2.58 ms
64 bytes from 192.168.88.1: icmp_seq=15 ttl=64 time=2.30 ms
64 bytes from 192.168.88.1: icmp_seq=16 ttl=64 time=3.17 ms
Comment 2 haritonovsb 2019-08-10 17:59:42 UTC
Update.
I get these results
~]$ ping 192.168.88.1
PING 192.168.88.1 (192.168.88.1) 56(84) bytes of data.
64 bytes from 192.168.88.1: icmp_seq=1 ttl=64 time=0.746 ms
64 bytes from 192.168.88.1: icmp_seq=2 ttl=64 time=0.868 ms
64 bytes from 192.168.88.1: icmp_seq=3 ttl=64 time=0.853 ms
64 bytes from 192.168.88.1: icmp_seq=4 ttl=64 time=0.868 ms
64 bytes from 192.168.88.1: icmp_seq=5 ttl=64 time=0.818 ms
64 bytes from 192.168.88.1: icmp_seq=6 ttl=64 time=0.844 ms
64 bytes from 192.168.88.1: icmp_seq=7 ttl=64 time=0.841 ms
64 bytes from 192.168.88.1: icmp_seq=8 ttl=64 time=0.913 ms
64 bytes from 192.168.88.1: icmp_seq=9 ttl=64 time=0.844 ms
64 bytes from 192.168.88.1: icmp_seq=10 ttl=64 time=0.886 ms
^C
--- 192.168.88.1 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 387ms
rtt min/avg/max/mdev = 0.746/0.848/0.913/0.044 ms

with a driver from rtl8192ee_revised.tar.bz2 file in https://github.com/lwfinger/rtlwifi_new/tree/extended repository built against Linux 4.19.65-1-lts #1 SMP Wed Aug 7 21:48:46 UTC 2019 x86_64 GNU/Linux ArchLinux current LTS kernel.

Connection speed and stability on a heavy load are also not affected.
Comment 3 lukas.redlinger 2019-09-30 12:16:58 UTC
have you tried disabling power management this way?

iw dev <devname> set power_save off
Comment 4 haritonovsb 2019-09-30 12:21:28 UTC
Yes, I've tried this before. Still no luck.

[user@host ~]$ ping 192.168.88.1
PING 192.168.88.1 (192.168.88.1) 56(84) bytes of data.
64 bytes from 192.168.88.1: icmp_seq=1 ttl=64 time=29.1 ms
64 bytes from 192.168.88.1: icmp_seq=2 ttl=64 time=18.5 ms
64 bytes from 192.168.88.1: icmp_seq=3 ttl=64 time=40.9 ms
64 bytes from 192.168.88.1: icmp_seq=4 ttl=64 time=63.9 ms
64 bytes from 192.168.88.1: icmp_seq=5 ttl=64 time=85.9 ms
64 bytes from 192.168.88.1: icmp_seq=6 ttl=64 time=5.46 ms
64 bytes from 192.168.88.1: icmp_seq=7 ttl=64 time=28.9 ms
64 bytes from 192.168.88.1: icmp_seq=8 ttl=64 time=51.8 ms
64 bytes from 192.168.88.1: icmp_seq=9 ttl=64 time=73.9 ms
64 bytes from 192.168.88.1: icmp_seq=10 ttl=64 time=32.8 ms
64 bytes from 192.168.88.1: icmp_seq=11 ttl=64 time=15.9 ms
^C
--- 192.168.88.1 ping statistics ---
11 packets transmitted, 11 received, 0% packet loss, time 10015ms
rtt min/avg/max/mdev = 5.460/40.630/85.857/24.278 ms
[user@host ~]$ sudo iw dev wlp3s0 set power_save off
[user@host ~]$ ping 192.168.88.1
PING 192.168.88.1 (192.168.88.1) 56(84) bytes of data.
64 bytes from 192.168.88.1: icmp_seq=1 ttl=64 time=35.3 ms
64 bytes from 192.168.88.1: icmp_seq=2 ttl=64 time=57.9 ms
64 bytes from 192.168.88.1: icmp_seq=3 ttl=64 time=80.8 ms
64 bytes from 192.168.88.1: icmp_seq=4 ttl=64 time=103 ms
64 bytes from 192.168.88.1: icmp_seq=5 ttl=64 time=23.5 ms
64 bytes from 192.168.88.1: icmp_seq=6 ttl=64 time=45.2 ms
64 bytes from 192.168.88.1: icmp_seq=7 ttl=64 time=68.5 ms
64 bytes from 192.168.88.1: icmp_seq=8 ttl=64 time=90.3 ms
64 bytes from 192.168.88.1: icmp_seq=9 ttl=64 time=10.5 ms
64 bytes from 192.168.88.1: icmp_seq=10 ttl=64 time=33.4 ms
64 bytes from 192.168.88.1: icmp_seq=11 ttl=64 time=56.5 ms
64 bytes from 192.168.88.1: icmp_seq=12 ttl=64 time=82.5 ms
^C
--- 192.168.88.1 ping statistics ---
12 packets transmitted, 12 received, 0% packet loss, time 11016ms
rtt min/avg/max/mdev = 10.487/57.270/102.931/27.413 ms

On Mon, Sep 30, 2019 at 4:16 PM <bugzilla-daemon@bugzilla.kernel.org> wrote:
>
> https://bugzilla.kernel.org/show_bug.cgi?id=202943
>
> lukas.redlinger@agilox.net changed:
>
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                  CC|                            |lukas.redlinger@agilox.net
>
> --- Comment #3 from lukas.redlinger@agilox.net ---
> have you tried disabling power management this way?
>
> iw dev <devname> set power_save off
>
> --
> You are receiving this mail because:
> You are on the CC list for the bug.

Note You need to log in before you can comment on or make changes to this bug.