Bug 1035376

Summary: Missing rtl8723au driver
Product: [Fedora] Fedora Reporter: Jes Sorensen <Jes.Sorensen>
Component: kernelAssignee: John Greene <jogreene>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: fedora-kernel-wireless-realtek, gansalmon, itamar, jonathan, kernel-maint, larry.finger, madhu.chinakonda
Target Milestone: ---Keywords: FutureFeature, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-05-26 14:58:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Jes Sorensen 2013-11-27 16:06:02 UTC
Description of problem:
Fedora 20 kernel is missing the rtl8723au driver

Out of tree driver is available here:
https://github.com/lwfinger/rtl8723au

Comment 1 Josh Boyer 2013-11-30 19:15:38 UTC
FYI, Larry has volunteered to look after staging drivers for rtl stuff in Fedora before.  The repo you point too looks like one that is in prep for submitting the driver to staging.  Once it lands there, we can enable it if Larry thinks it's acceptable.

Comment 2 Larry Finger 2013-11-30 19:34:32 UTC
The situation with this driver is that I do not have an RTL8723AU card. For that reason, I am reluctant to make the changes needed to clean up the driver even for the staging tree. Without the ability to test, how would I know if I had created errors in the conversion. In particular, removing the typedef statements could be trouble.

A few months ago, someone offered to fix the checkpatch.pl errors, but I have heard nothing since then. I suspect that he underestimated the magnitude of the task.

I am willing to devote some effort to cleaning up the driver as long as someone is willing to test it.

The driver seems to be fairly solid - at least there are few reports of problems.

Comment 3 Jes Sorensen 2013-11-30 23:20:06 UTC
Larry,

I now have a laptop with one of these in it as of a few days ago (Lenovo
Yoga 13), so I will be willing to test.

Cheers,
Jes

Comment 4 Larry Finger 2013-12-01 03:33:40 UTC
I will be working on the driver and pushing the changes to http://github.com/lwfinger/rtl8723au.git. Please pull every day or so, and test. Please let me know if anything breaks.

Comment 5 Jes Sorensen 2013-12-01 11:32:53 UTC
I can't guarantee every day, but I shall try my best :)

Just hollor if there is anything noticeable that you want me to try out.

Comment 6 Jes Sorensen 2013-12-01 12:12:31 UTC
Larry,

One thing I am noticing is that the driver is extremely slow - I ran some very
unscientific testing here, running speed test using the 8723au vs a ralink
rt2800usb nano dongle.

Using the same external test server (I am on 100Mbit/sec FTTH here, so the
external link isn't the limit), I get the these speeds:

          Down           Up
8723au:    0.55Mbps/sec   1.24Mbps/sec
rt2800:   34.90Mbps/sec  42.00Mbps/sec

The speed differences are rather consistent between the two across multiple
runs.

[jes@yoga rtl8723au]$ sudo iwconfig 
[sudo] password for jes: 
wlp0s26u1u4i2  IEEE 802.11bgn  ESSID:"The Wilderness"  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency:2.462 GHz  Access Point: xx:xx:xx:xx:xx:xx   
          Bit Rate:65 Mb/s   Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:****-****-****-****-****-****-****-****   Security mode:open
          Power Management:off
          Link Quality=100/100  Signal level=77/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

[jes@yoga rtl8723au]$ sudo iwconfig 
wlp0s20u2  IEEE 802.11bgn  ESSID:"The Wilderness"  
          Mode:Managed  Frequency:2.462 GHz  Access Point: xx:xx:xx:xx:xx:xx   
          Bit Rate=58.5 Mb/s   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
          Link Quality=65/70  Signal level=-45 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:845  Invalid misc:25   Missed beacon:0


I am running this version of the driver:
commit 390e496b80b14d64b8f8701ad1354edff21b6689
Author: Larry Finger <Larry.Finger>
Date:   Sun Dec 1 00:00:28 2013 -0600

    rtl8723au: Remove C99 comments from core/rtw_xmit.c
    
    Signed-off-by: Larry Finger <Larry.Finger>

jes@yoga rtl8723au]$ uname -a
Linux yoga 3.11.6-301.fc20.x86_64 #1 SMP Mon Oct 21 21:54:19 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Comment 7 Larry Finger 2013-12-01 16:06:32 UTC
Unfortunately, that kind of situation will be hard to debug. First of all, if you issue the command 'git checkout c006177', is the performance better? If not, then use 'git checkout master' to restore the code. If it is better, then use git bisection to find the bad commit. Just in case you have not done that before, the sequence would be:

git bisect start
git bisect nad
git bisect good c006177

That will generate a trial version. Build it and test. Then 'git bisect <good,bad>' depending on the results. Let me know the bad commit.

If the bad performance was present in commit c006177, then checkout cd93a4a and see if it is better. That one is essentially the original code before I did much to it.

Larry

Comment 8 Jes Sorensen 2013-12-01 17:40:37 UTC
Larry,

I tried going back to cd93a4ae4151d69e9d198d8d4b3ef95c0e7714b6 (with
df02fe1aea27b9a3969d050a1853064f87308055 cherry-picked on top to allow for it
to build), but unfortunately the performance is just as bad.

Just to make sure, I also tried booting into 'that other OS' to make sure that
it wasn't a hardware issue, and there the performance is as expected.

Jes

Comment 9 Larry Finger 2013-12-02 02:12:39 UTC
Jes,

It seems that the performance problem is nothing that I did. I'll ask Realtek if they have any code changes that might address this situation.

Larry

Comment 10 John Greene 2013-12-02 16:13:34 UTC
(In reply to Jes Sorensen from comment #6)
 
>           Down           Up
> 8723au:    0.55Mbps/sec   1.24Mbps/sec
> rt2800:   34.90Mbps/sec  42.00Mbps/sec
> 
> The speed differences are rather consistent between the two across multiple
> runs.
> 
> [jes@yoga rtl8723au]$ sudo iwconfig 
> [sudo] password for jes: 
> wlp0s26u1u4i2  IEEE 802.11bgn  ESSID:"The Wilderness" 
> Nickname:"<WIFI@REALTEK>"
>           Mode:Managed  Frequency:2.462 GHz  Access Point: xx:xx:xx:xx:xx:xx
> 
>           Bit Rate:65 Mb/s   Sensitivity:0/0  
>           Retry:off   RTS thr:off   Fragment thr:off
>           Encryption key:****-****-****-****-****-****-****-****   Security
> mode:open
>           Power Management:off
>           Link Quality=100/100  Signal level=77/100  Noise level=0/100
>           Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
>           Tx excessive retries:0  Invalid misc:0   Missed beacon:0
> 
> [jes@yoga rtl8723au]$ sudo iwconfig 
> wlp0s20u2  IEEE 802.11bgn  ESSID:"The Wilderness"  
>           Mode:Managed  Frequency:2.462 GHz  Access Point: xx:xx:xx:xx:xx:xx
> 
>           Bit Rate=58.5 Mb/s   Tx-Power=20 dBm   
>           Retry  long limit:7   RTS thr:off   Fragment thr:off
>           Encryption key:off
>           Power Management:on
>           Link Quality=65/70  Signal level=-45 dBm  
>           Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
>           Tx excessive retries:845  Invalid misc:25   Missed beacon:0

Will state the obvious perhaps: 
A lot of excessive Tx retries on the 2nd one (assume that's is the rtl device?). 
Signal levels are acceptable but not great. If it's ok on "the other OS", wondering about firmware?  Tx retries will cause Tx rates to lower usually, and perhaps thrash, lowering throughput.  

Would love to get a Wireshark trace of that and see if it's missing acks from AP, causing the errors at the bottom listing (tx retries, invalid misc).
Anything interesting in dmesg?

Comment 11 John Greene 2013-12-02 16:16:09 UTC
>It's USB - I posted the iwconfig output in the BZ already (typing this
>from another box, so no copy-paste).
>Looks like the chip might be a combo WiFi+BT chip in one btw....

Might try turning of BT and see if throughput improves.. THey share antennas.

Comment 12 Larry Finger 2013-12-02 19:18:27 UTC
That might not be a problem. There is no driver for the BT part of the chip in the kernel. One has been proposed, but rejected by reviewers as duplicating too much of btusb.ko. The BT developers have incorporated a better means of handling the quirks of an individual device, but I have not yet found time to convert Realtek's version to fit the new structure.

On the other hand, if the OP has another BT interface that is active, the additional 2.4 GHz signals might be interfering.

Comment 13 Jes Sorensen 2013-12-02 21:16:34 UTC
I don't think the BT was the problem, after I removed the MP code, the
performance came back.

Sorry I patch bombed you a bit today - I hope the changes I sent you are
fine.

Plenty more to come.

Cheers,
Jes

Comment 14 Larry Finger 2013-12-02 21:27:59 UTC
Did you change CONFIG_MP_INCLUDED = y to "n" in Makefile, or was it some other change?

I'm working on the patch bomb. Thanks.

Larry

Comment 15 Jes Sorensen 2013-12-02 22:01:55 UTC
I found that a lot of places in the code had it hardwired and overruled the
config setting, so I simply ripped it out completely. I didn't think it was
needed in a normal driver anyway.

Jes

Comment 16 Jes Sorensen 2014-05-26 14:58:13 UTC

*** This bug has been marked as a duplicate of bug 1100162 ***