2018-04-04 01:52:19

by João Paulo Rechi Vita

[permalink] [raw]
Subject: RTL8723BE performance regression

Hello,

I've been trying to track a performance regression on the RTL8723BE
WiFi adapter, which mainly affects the upload bandwidth (although we
can see a decreased download performance as well, the effect on upload
is more drastic). This was first reported by users after upgrading
from our 4.11-based kernel to our 4.13-based kernel, but also
confirmed to affect our development branch (4.15-based kernel) and
wireless-drivers-next at the
wireless-drivers-next-for-davem-2018-03-29 tag. This is happening on
an HP laptop that needs rtl8723be.ant_sel=3D1 (and all the following
tests have been made with that param).

My first bisect attempt pointed me to the following commit:

bcd37f4a0831 rtlwifi: btcoex: 23b 2ant: let bt transmit when hw
initialisation done

Which I later found to be already fixed by

a33fcba6ec01 rtlwifi: btcoexist: Fix breakage of ant_sel for rtl8723be.

That fix is already included in v4.15 though (and our dev branch as
well), so I did a second bisect, now cherry-picking a33fcba6ec01 at
every step, and it pointed me to the following commit:

7937f02d1953 rtlwifi: btcoex: hook external functions for newer chips

Reverting that commit on top of our development branch fixes the
problem, but on top of v4.15 I get mixed results: a few times getting
a good upload performance (~5-6Mbps) but most of the time just getting
~1-1.5Mpbs (which is still better than the 0.0 then test failure I've
gotten on most bad points of the bisect).

Bisecting the downstream patches we carry on top of v4.15 (we base our
kernel on Ubuntu's, so there are quite a few downstream changes) did
not bring any clarity, as at all bisect points (plus reverting
7937f02d1953) the performance was good, so probably there was some
other difference in the resulting kernels from my initial revert of
that patch on top of v4.15 and each step during the bisect. I've
experimented a bit with fwlps=3D0, but it did not bring any conclusive
results either. I'll try to look at other things that may have changed
(configuration perhaps?), but I don't have a clear plan yet.

Have you seen anything similar, or have any other ideas or suggestions
to track this problem? Even without crystal clear results, it looks
like 7937f02d1953 is having a negative impact on the RTL8723BE
performance, so perhaps it is worth reverting it and reworking it a
later point?

This are the results (testing with speedtest.net) I got at some key points:

Version Commit Ping Down Up

v4.11 a351e9b 12 25.44 5.99
v4.11 a351e9b 131 17.02 5.89

v4.13 569dbb8 174 14.08 0.00
v4.13 569dbb8 261 8.41 0.00

v4.15+revert d8a5b80 19 23.86 1.41
v4.15+revert d8a5b80 189 18.69 1.39

Best regards,

--
Jo=C3=A3o Paulo Rechi Vita
http://about.me/jprvita


2018-04-04 14:55:24

by Steve deRosier

[permalink] [raw]
Subject: Re: RTL8723BE performance regression

On Tue, Apr 3, 2018 at 6:51 PM, Jo=C3=A3o Paulo Rechi Vita <[email protected]=
om> wrote:
>
> This are the results (testing with speedtest.net) I got at some key point=
s:
>
> Version Commit Ping Down Up
>
> v4.11 a351e9b 12 25.44 5.99
> v4.11 a351e9b 131 17.02 5.89
>
> v4.13 569dbb8 174 14.08 0.00
> v4.13 569dbb8 261 8.41 0.00
>
> v4.15+revert d8a5b80 19 23.86 1.41
> v4.15+revert d8a5b80 189 18.69 1.39
>

I recommend doing throughput testing in a closed system using iperf.
speedtest.net is potentially useful for testing your ISP's bandwidth
at some particular point in time, but little else as it exposes you to
too many variables. I wouldn't take those numbers to mean much and the
inconclusive results you're getting could be explained by external
network loading and having little to do with your bisect effort. I can
get that spread in numbers from speedtest.net without making any
changes other than the time of day I do the test.

Here's how to do it. Install iperf2 (you could use iperf3, personal
choice) on two machines, one being your device under test (DUT). Setup
a network configuration that looks similar to this:

server <=3D=3Dhardwire=3D=3D> AP <--wireless link--> DUT

Be sure your hardwire is more bandwidth than your wireless link is
capable of, or set it up where the server is the AP. What you're
looking for here is environmental consistency, not maximum throughput
numbers.

On the computer hardwired to the network, start the server, we'll
assume it has an ip of 192.168.33.18:

iperf -s

On your DUT:

iperf -c 192.168.33.18

That's the most basic setup, check the man page for more options.

You will get best results if you can exclude other computers from your
test network and other wireless devices from your airspace.

- Steve

--
Steve deRosier
Cal-Sierra Consulting LLC
https://www.cal-sierra.com/

2018-04-04 02:51:20

by Larry Finger

[permalink] [raw]
Subject: Re: RTL8723BE performance regression

On 04/03/2018 09:37 PM, João Paulo Rechi Vita wrote:
> On Tue, Apr 3, 2018 at 7:28 PM, Larry Finger <[email protected]> wrote:
>
> (...)
>
>> As the antenna selection code changes affected your first bisection, do you
>> have one of those HP laptops with only one antenna and the incorrect coding
>> in the FUSE?
>
> Yes, that is why I've been passing ant_sel=1 during my tests -- this
> was needed to achieve a good performance in the past, before this
> regression. I've also opened the laptop chassis and confirmed the
> antenna cable is plugged to the connector labeled with "1" on the
> card.
>
>> If so, please make sure that you still have the same signal
>> strength for good and bad cases. I have tried to keep the driver and the
>> btcoex code in sync, but there may be some combinations of antenna
>> configuration and FUSE contents that cause the code to fail.
>>
>
> What is the recommended way to monitor the signal strength?

The btcoex code is developed for multiple platforms by a different group than
the Linux driver. I think they made a change that caused ant_sel to switch from
1 to 2. At least numerous comments at github.com/lwfinger/rtlwifi_new claimed
they needed to make that change.

Mhy recommended method is to verify the wifi device name with "iw dev". Then
using that device

sudo iw dev <dev_name> scan | egrep "SSID|signal"

Larry

2018-04-04 02:38:28

by João Paulo Rechi Vita

[permalink] [raw]
Subject: Re: RTL8723BE performance regression

On Tue, Apr 3, 2018 at 7:28 PM, Larry Finger <[email protected]> wr=
ote:

(...)

> As the antenna selection code changes affected your first bisection, do y=
ou
> have one of those HP laptops with only one antenna and the incorrect codi=
ng
> in the FUSE?

Yes, that is why I've been passing ant_sel=3D1 during my tests -- this
was needed to achieve a good performance in the past, before this
regression. I've also opened the laptop chassis and confirmed the
antenna cable is plugged to the connector labeled with "1" on the
card.

> If so, please make sure that you still have the same signal
> strength for good and bad cases. I have tried to keep the driver and the
> btcoex code in sync, but there may be some combinations of antenna
> configuration and FUSE contents that cause the code to fail.
>

What is the recommended way to monitor the signal strength?

Thanks for such a quick reply,

--
Jo=C3=A3o Paulo Rechi Vita
http://about.me/jprvita

2018-04-04 02:28:39

by Larry Finger

[permalink] [raw]
Subject: Re: RTL8723BE performance regression

On 04/03/2018 08:51 PM, João Paulo Rechi Vita wrote:
> Hello,
>
> I've been trying to track a performance regression on the RTL8723BE
> WiFi adapter, which mainly affects the upload bandwidth (although we
> can see a decreased download performance as well, the effect on upload
> is more drastic). This was first reported by users after upgrading
> from our 4.11-based kernel to our 4.13-based kernel, but also
> confirmed to affect our development branch (4.15-based kernel) and
> wireless-drivers-next at the
> wireless-drivers-next-for-davem-2018-03-29 tag. This is happening on
> an HP laptop that needs rtl8723be.ant_sel=1 (and all the following
> tests have been made with that param).
>
> My first bisect attempt pointed me to the following commit:
>
> bcd37f4a0831 rtlwifi: btcoex: 23b 2ant: let bt transmit when hw
> initialisation done
>
> Which I later found to be already fixed by
>
> a33fcba6ec01 rtlwifi: btcoexist: Fix breakage of ant_sel for rtl8723be.
>
> That fix is already included in v4.15 though (and our dev branch as
> well), so I did a second bisect, now cherry-picking a33fcba6ec01 at
> every step, and it pointed me to the following commit:
>
> 7937f02d1953 rtlwifi: btcoex: hook external functions for newer chips
>
> Reverting that commit on top of our development branch fixes the
> problem, but on top of v4.15 I get mixed results: a few times getting
> a good upload performance (~5-6Mbps) but most of the time just getting
> ~1-1.5Mpbs (which is still better than the 0.0 then test failure I've
> gotten on most bad points of the bisect).
>
> Bisecting the downstream patches we carry on top of v4.15 (we base our
> kernel on Ubuntu's, so there are quite a few downstream changes) did
> not bring any clarity, as at all bisect points (plus reverting
> 7937f02d1953) the performance was good, so probably there was some
> other difference in the resulting kernels from my initial revert of
> that patch on top of v4.15 and each step during the bisect. I've
> experimented a bit with fwlps=0, but it did not bring any conclusive
> results either. I'll try to look at other things that may have changed
> (configuration perhaps?), but I don't have a clear plan yet.
>
> Have you seen anything similar, or have any other ideas or suggestions
> to track this problem? Even without crystal clear results, it looks
> like 7937f02d1953 is having a negative impact on the RTL8723BE
> performance, so perhaps it is worth reverting it and reworking it a
> later point?
>
> This are the results (testing with speedtest.net) I got at some key points:
>
> Version Commit Ping Down Up
>
> v4.11 a351e9b 12 25.44 5.99
> v4.11 a351e9b 131 17.02 5.89
>
> v4.13 569dbb8 174 14.08 0.00
> v4.13 569dbb8 261 8.41 0.00
>
> v4.15+revert d8a5b80 19 23.86 1.41
> v4.15+revert d8a5b80 189 18.69 1.39
>

As the antenna selection code changes affected your first bisection, do you have
one of those HP laptops with only one antenna and the incorrect coding in the
FUSE? If so, please make sure that you still have the same signal strength for
good and bad cases. I have tried to keep the driver and the btcoex code in sync,
but there may be some combinations of antenna configuration and FUSE contents
that cause the code to fail.

Larry

2018-05-01 22:41:48

by João Paulo Rechi Vita

[permalink] [raw]
Subject: Re: RTL8723BE performance regression

On Tue, Apr 3, 2018 at 7:51 PM, Larry Finger <[email protected]> wr=
ote:
> On 04/03/2018 09:37 PM, Jo=C3=A3o Paulo Rechi Vita wrote:
>>
>> On Tue, Apr 3, 2018 at 7:28 PM, Larry Finger <[email protected]>
>> wrote:
>>
>> (...)
>>
>>> As the antenna selection code changes affected your first bisection, do
>>> you
>>> have one of those HP laptops with only one antenna and the incorrect
>>> coding
>>> in the FUSE?
>>
>>
>> Yes, that is why I've been passing ant_sel=3D1 during my tests -- this
>> was needed to achieve a good performance in the past, before this
>> regression. I've also opened the laptop chassis and confirmed the
>> antenna cable is plugged to the connector labeled with "1" on the
>> card.
>>
>>> If so, please make sure that you still have the same signal
>>> strength for good and bad cases. I have tried to keep the driver and th=
e
>>> btcoex code in sync, but there may be some combinations of antenna
>>> configuration and FUSE contents that cause the code to fail.
>>>
>>
>> What is the recommended way to monitor the signal strength?
>
>
> The btcoex code is developed for multiple platforms by a different group
> than the Linux driver. I think they made a change that caused ant_sel to
> switch from 1 to 2. At least numerous comments at
> github.com/lwfinger/rtlwifi_new claimed they needed to make that change.
>
> Mhy recommended method is to verify the wifi device name with "iw dev". T=
hen
> using that device
>
> sudo iw dev <dev_name> scan | egrep "SSID|signal"
>

I have confirmed that the performance regression is indeed tied to
signal strength: on the good cases signal was between -16 and -8 dBm,
whereas in bad cases signal was always between -50 to - 40 dBm. I've
also switched to testing bandwidth in controlled LAN environment using
iperf3, as suggested by Steve deRosier, with the DUT being the only
machine connected to the 2.4 GHz radio and the machine running the
iperf3 server connected via ethernet.

Using those two tests (iperf3 and signal strength) I've dug deeper
into the culprit I had found previously, commit 7937f02d1953,
reverting it partially and testing the resulting driver, to isolate
which change was causing the problem. Besides "hooking up external
functions for newer ICs", as described by the commit message, that
commit also added code to decided whether ex_btc8723b1ant_*() or
ex_btc8723b2ant_*() functions should be used in halbtcoutsrc.c,
depending on the value of board_info.btdm_ant_num, whereas before that
commit ex_btc8723b2ant_*() were always used. Reverting to always using
ex_btc8723b2ant_*() functions fixes the regression on v4.15.

I've also tried to bisect between v4.15..v4.16 to find what else was
causing problems there, as the changes mentioned above on top of v4.16
did not solve the problem. The bisect pointed to "874e837d67d0
rtlwifi: fill FW version and subversion", only but reverting it plus
the changes mentioned above also didn't yield good results. That's
when I decided to get a bit creative: starting on v4.16 I first
applied the changes to have ex_btc8723b2ant_*() always being used, as
mentioned above, then reverted every commit between v4.15..v4.16
affecting drivers/net/wireless/realtek/rtlwifi/, and verified the
resulting kernel had a good performance. Then I started trimming down
the history and testing along the way, to reduce to the minimum set of
changes that had to be reverted in order to restore the good
performance. In addition to the ex_btc8723b2ant_*() changes and
reverting "874e837d67d0 rtlwifi: fill FW version and subversion", I've
also had to remove the following lines from
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c, which
were introduced by "40d9dd4f1c5d rtlwifi: btcoex: Remove global
variables from btcoex", in order to restore the upload performance and
signal strength.

/* set default antenna position to main port */
btcoexist->board_info.btdm_ant_pos =3D BTC_ANTENNA_AT_MAIN_PORT;

These are the results I've got on v4.16 (similarly on
wireless-drivers-next-for-davem-2018-03-29 or v4.15):

$ sudo iw dev wlp2s0 scan | grep -B3 JJ | grep signal
signal: -42.00 dBm
$ iperf3 -c 192.168.1.254
Connecting to host 192.168.1.254, port 5201
[ 4] local 192.168.1.253 port 39678 connected to 192.168.1.254 port 5=
201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 735 KBytes 6.02 Mbits/sec 1 1.41 KByte=
s
[ 4] 1.00-2.00 sec 274 KBytes 2.25 Mbits/sec 1 1.41 KByte=
s
[ 4] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 4] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 4] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 1 28.3 KBytes
[ 4] 5.00-6.00 sec 423 KBytes 3.47 Mbits/sec 3 41.0 KByte=
s
[ 4] 6.00-7.00 sec 840 KBytes 6.88 Mbits/sec 0 58.0 KByte=
s
[ 4] 7.00-8.00 sec 830 KBytes 6.79 Mbits/sec 1 1.41 KByte=
s
[ 4] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 4] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 3.03 MBytes 2.54 Mbits/sec 7
sender
[ 4] 0.00-10.00 sec 2.88 MBytes 2.41 Mbits/sec
receiver

iperf Done.

And these are the results on v4.16 with all the changes mentioned on
the previous paragraph, and similar results were obtained when
applying the same changes on the current wireless-drivers-next master
branch (f56324baf329):

$ sudo iw dev wlp2s0 scan | grep -B3 JJ | grep signal
signal: -14.00 dBm
$ iperf3 -c 192.168.1.254
Connecting to host 192.168.1.254, port 5201
[ 4] local 192.168.1.253 port 59380 connected to 192.168.1.254 port 5=
201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 4.63 MBytes 38.8 Mbits/sec 0 194 KByte=
s
[ 4] 1.00-2.00 sec 4.58 MBytes 38.4 Mbits/sec 0 273 KByte=
s
[ 4] 2.00-3.00 sec 5.05 MBytes 42.3 Mbits/sec 0 332 KByte=
s
[ 4] 3.00-4.00 sec 4.98 MBytes 41.8 Mbits/sec 0 393 KByte=
s
[ 4] 4.00-5.00 sec 4.76 MBytes 39.9 Mbits/sec 0 434 KByte=
s
[ 4] 5.00-6.00 sec 4.85 MBytes 40.7 Mbits/sec 0 434 KByte=
s
[ 4] 6.00-7.00 sec 3.96 MBytes 33.2 Mbits/sec 0 464 KByte=
s
[ 4] 7.00-8.00 sec 4.74 MBytes 39.8 Mbits/sec 0 481 KByte=
s
[ 4] 8.00-9.00 sec 4.22 MBytes 35.4 Mbits/sec 0 508 KByte=
s
[ 4] 9.00-10.00 sec 4.09 MBytes 34.3 Mbits/sec 0 564 KByte=
s
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 45.9 MBytes 38.5 Mbits/sec 0
sender
[ 4] 0.00-10.00 sec 45.0 MBytes 37.7 Mbits/sec
receiver

iperf Done.

I'll send an RFC patchset with the changes that I mentioned above.
Please advise whether those changes themselves should be merged, or if
you suggest a different approach.

2018-05-08 08:37:37

by Ping-Ke Shih

[permalink] [raw]
Subject: Re: RTL8723BE performance regression

T24gTW9uLCAyMDE4LTA1LTA3IGF0IDE0OjQ5IC0wNzAwLCBKb8OjbyBQYXVsbyBSZWNoaSBWaXRh
IHdyb3RlOg0KPiBPbiBUdWUsIE1heSAxLCAyMDE4IGF0IDEwOjU4IFBNLCBQa3NoaWggPHBrc2hp
aEByZWFsdGVrLmNvbT4gd3JvdGU6DQo+ID4gT24gV2VkLCAyMDE4LTA1LTAyIGF0IDA1OjQ0ICsw
MDAwLCBQa3NoaWggd3JvdGU6DQo+ID4+DQo+ID4+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t
LS0NCj4gPj4gPiBGcm9tOiBKb8OjbyBQYXVsbyBSZWNoaSBWaXRhIFttYWlsdG86anBydml0YUBn
bWFpbC5jb21dDQo+ID4+ID4gU2VudDogV2VkbmVzZGF5LCBNYXkgMDIsIDIwMTggNjo0MSBBTQ0K
PiA+PiA+IFRvOiBMYXJyeSBGaW5nZXINCj4gPj4gPiBDYzogU3RldmUgZGVSb3NpZXI7IOiOiuW9
peWuozsgUGtzaGloOyBCaXJtaW5nIENoaXU7IFNoYW9mdTsgU3RldmVuIFRpbmc7IENoYW9taW5n
X0xpOyBLYWxsZSBWYWxvOw0KPiA+PiA+IGxpbnV4LXdpcmVsZXNzOyBOZXR3b3JrIERldmVsb3Bt
ZW50OyBMS01MOyBEYW5pZWwgRHJha2U7IEpvw6NvIFBhdWxvIFJlY2hpIFZpdGE7IGxpbnV4QGVu
ZGxlc3MNCj4gbS5jDQo+ID4+IG9tDQo+ID4+ID4gU3ViamVjdDogUmU6IFJUTDg3MjNCRSBwZXJm
b3JtYW5jZSByZWdyZXNzaW9uDQo+ID4+ID4NCj4gPj4gPiBPbiBUdWUsIEFwciAzLCAyMDE4IGF0
IDc6NTEgUE0sIExhcnJ5IEZpbmdlciA8TGFycnkuRmluZ2VyQGx3ZmluZ2VyLm5ldD4gd3JvdGU6
DQo+ID4+ID4gPiBPbiAwNC8wMy8yMDE4IDA5OjM3IFBNLCBKb8OjbyBQYXVsbyBSZWNoaSBWaXRh
IHdyb3RlOg0KPiA+PiA+ID4+DQo+ID4+ID4gPj4gT24gVHVlLCBBcHIgMywgMjAxOCBhdCA3OjI4
IFBNLCBMYXJyeSBGaW5nZXIgPExhcnJ5LkZpbmdlckBsd2Zpbmdlci5uZXQ+DQo+ID4+ID4gPj4g
d3JvdGU6DQo+ID4+ID4gPj4NCj4gPj4gPiA+PiAoLi4uKQ0KPiA+PiA+ID4+DQo+ID4+ID4gPj4+
IEFzIHRoZSBhbnRlbm5hIHNlbGVjdGlvbiBjb2RlIGNoYW5nZXMgYWZmZWN0ZWQgeW91ciBmaXJz
dCBiaXNlY3Rpb24sIGRvDQo+ID4+ID4gPj4+IHlvdQ0KPiA+PiA+ID4+PiBoYXZlIG9uZSBvZiB0
aG9zZSBIUCBsYXB0b3BzIHdpdGggb25seSBvbmUgYW50ZW5uYSBhbmQgdGhlIGluY29ycmVjdA0K
PiA+PiA+ID4+PiBjb2RpbmcNCj4gPj4gPiA+Pj4gaW4gdGhlIEZVU0U/DQo+ID4+ID4gPj4NCj4g
Pj4gPiA+Pg0KPiA+PiA+ID4+IFllcywgdGhhdCBpcyB3aHkgSSd2ZSBiZWVuIHBhc3NpbmcgYW50
X3NlbD0xIGR1cmluZyBteSB0ZXN0cyAtLSB0aGlzDQo+ID4+ID4gPj4gd2FzIG5lZWRlZCB0byBh
Y2hpZXZlIGEgZ29vZCBwZXJmb3JtYW5jZSBpbiB0aGUgcGFzdCwgYmVmb3JlIHRoaXMNCj4gPj4g
PiA+PiByZWdyZXNzaW9uLiBJJ3ZlIGFsc28gb3BlbmVkIHRoZSBsYXB0b3AgY2hhc3NpcyBhbmQg
Y29uZmlybWVkIHRoZQ0KPiA+PiA+ID4+IGFudGVubmEgY2FibGUgaXMgcGx1Z2dlZCB0byB0aGUg
Y29ubmVjdG9yIGxhYmVsZWQgd2l0aCAiMSIgb24gdGhlDQo+ID4+ID4gPj4gY2FyZC4NCj4gPj4g
PiA+Pg0KPiA+PiA+ID4+PiBJZiBzbywgcGxlYXNlIG1ha2Ugc3VyZSB0aGF0IHlvdSBzdGlsbCBo
YXZlIHRoZSBzYW1lIHNpZ25hbA0KPiA+PiA+ID4+PiBzdHJlbmd0aCBmb3IgZ29vZCBhbmQgYmFk
IGNhc2VzLiBJIGhhdmUgdHJpZWQgdG8ga2VlcCB0aGUgZHJpdmVyIGFuZCB0aGUNCj4gPj4gPiA+
Pj4gYnRjb2V4IGNvZGUgaW4gc3luYywgYnV0IHRoZXJlIG1heSBiZSBzb21lIGNvbWJpbmF0aW9u
cyBvZiBhbnRlbm5hDQo+ID4+ID4gPj4+IGNvbmZpZ3VyYXRpb24gYW5kIEZVU0UgY29udGVudHMg
dGhhdCBjYXVzZSB0aGUgY29kZSB0byBmYWlsLg0KPiA+PiA+ID4+Pg0KPiA+PiA+ID4+DQo+ID4+
ID4gPj4gV2hhdCBpcyB0aGUgcmVjb21tZW5kZWQgd2F5IHRvIG1vbml0b3IgdGhlIHNpZ25hbCBz
dHJlbmd0aD8NCj4gPj4gPiA+DQo+ID4+ID4gPg0KPiA+PiA+ID4gVGhlIGJ0Y29leCBjb2RlIGlz
IGRldmVsb3BlZCBmb3IgbXVsdGlwbGUgcGxhdGZvcm1zIGJ5IGEgZGlmZmVyZW50IGdyb3VwDQo+
ID4+ID4gPiB0aGFuIHRoZSBMaW51eCBkcml2ZXIuIEkgdGhpbmsgdGhleSBtYWRlIGEgY2hhbmdl
IHRoYXQgY2F1c2VkIGFudF9zZWwgdG8NCj4gPj4gPiA+IHN3aXRjaCBmcm9tIDEgdG8gMi4gQXQg
bGVhc3QgbnVtZXJvdXMgY29tbWVudHMgYXQNCj4gPj4gPiA+IGdpdGh1Yi5jb20vbHdmaW5nZXIv
cnRsd2lmaV9uZXcgY2xhaW1lZCB0aGV5IG5lZWRlZCB0byBtYWtlIHRoYXQgY2hhbmdlLg0KPiA+
PiA+ID4NCj4gPj4gPiA+IE1oeSByZWNvbW1lbmRlZCBtZXRob2QgaXMgdG8gdmVyaWZ5IHRoZSB3
aWZpIGRldmljZSBuYW1lIHdpdGggIml3IGRldiIuIFRoZW4NCj4gPj4gPiA+IHVzaW5nIHRoYXQg
ZGV2aWNlDQo+ID4+ID4gPg0KPiA+PiA+ID4gc3VkbyBpdyBkZXYgPGRldl9uYW1lPiBzY2FuIHwg
ZWdyZXAgIlNTSUR8c2lnbmFsIg0KPiA+PiA+ID4NCj4gPj4gPg0KPiA+PiA+IEkgaGF2ZSBjb25m
aXJtZWQgdGhhdCB0aGUgcGVyZm9ybWFuY2UgcmVncmVzc2lvbiBpcyBpbmRlZWQgdGllZCB0bw0K
PiA+PiA+IHNpZ25hbCBzdHJlbmd0aDogb24gdGhlIGdvb2QgY2FzZXMgc2lnbmFsIHdhcyBiZXR3
ZWVuIC0xNiBhbmQgLTggZEJtLA0KPiA+PiA+IHdoZXJlYXMgaW4gYmFkIGNhc2VzIHNpZ25hbCB3
YXMgYWx3YXlzIGJldHdlZW4gLTUwIHRvIC0gNDAgZEJtLiBJJ3ZlDQo+ID4+ID4gYWxzbyBzd2l0
Y2hlZCB0byB0ZXN0aW5nIGJhbmR3aWR0aCBpbiBjb250cm9sbGVkIExBTiBlbnZpcm9ubWVudCB1
c2luZw0KPiA+PiA+IGlwZXJmMywgYXMgc3VnZ2VzdGVkIGJ5IFN0ZXZlIGRlUm9zaWVyLCB3aXRo
IHRoZSBEVVQgYmVpbmcgdGhlIG9ubHkNCj4gPj4gPiBtYWNoaW5lIGNvbm5lY3RlZCB0byB0aGUg
Mi40IEdIeiByYWRpbyBhbmQgdGhlIG1hY2hpbmUgcnVubmluZyB0aGUNCj4gPj4gPiBpcGVyZjMg
c2VydmVyIGNvbm5lY3RlZCB2aWEgZXRoZXJuZXQuDQo+ID4+ID4NCj4gPj4NCj4gPj4gV2UgaGF2
ZSBuZXcgZXhwZXJpbWVudGFsIHJlc3VsdHMgaW4gY29tbWl0IGFmOGE0MWNjY2Y4ZjQ2ICgicnRs
d2lmaTogY2xlYW51cA0KPiA+PiA4NzIzYmUgYW50X3NlbCBkZWZpbml0aW9uIikuIFlvdSBjYW4g
dXNlIHRoZSBhYm92ZSBjb21taXQgYW5kIGRvIHRoZSBzYW1lDQo+ID4+IGV4cGVyaW1lbnRzICh3
aXRoIGFudF9zZWw9MCwgMSBhbmQgMikgaW4geW91ciBzaWRlLCBhbmQgdGhlbiBzaGFyZSB5b3Vy
IHJlc3VsdHMuDQo+ID4+IFNpbmNlIHBlcmZvcm1hbmNlIGlzIHRpZWQgdG8gc2lnbmFsIHN0cmVu
Z3RoLCB5b3UgY2FuIG9ubHkgc2hhcmUgc2lnbmFsIHN0cmVuZ3RoLg0KPiA+Pg0KPiA+DQo+ID4g
UGxlYXNlIHBheSBhdHRlbnRpb24gdG8gY29sZCByZWJvb3Qgb25jZSBhbnRfc2VsIGlzIGNoYW5n
ZWQuDQo+ID4NCj7CoA0KPiBJJ3ZlIHRlc3RlZCB0aGUgY29tbWl0IG1lbnRpb25lZCBhYm92ZSBh
bmQgaXQgZml4ZXMgdGhlIHByb2JsZW0gb24gdG9wDQo+IG9mIHY0LjE2IChpbiBhZGRpdGlvbiB0
byB0aGUgbGF0ZXN0IHdpcmVsZXNzLWRyaXZlcnMtbmV4dCBhbHNvIGJlZW4NCj4gZml4ZWQgYXMg
aXQgYWxyZWFkeSBjb250YWlucyBzdWNoIGNvbW1pdCkuIE9uIHY0LjE1LCB3ZSBhbHNvIG5lZWQg
dGhlDQo+IGZvbGxvd2luZyBjb21taXRzIGJlZm9yZSAiYWY4YTQxY2NjZjhmIHJ0bHdpZmk6IGNs
ZWFudXAgODcyM2JlIGFudF9zZWwNCj4gZGVmaW5pdGlvbiIgdG8gaGF2ZSBhIGdvb2QgcGVyZm9y
bWFuY2UgYWdhaW46DQo+wqANCj7CoMKgwqA4NzRlODM3ZDY3ZDAgcnRsd2lmaTogZmlsbCBGVyB2
ZXJzaW9uIGFuZCBzdWJ2ZXJzaW9uDQo+wqDCoMKgYTQ0NzA5YmJhNzBmIHJ0bHdpZmk6IGJ0Y29l
eDogQWRkIHBvd2VyX29uX3NldHRpbmcgcm91dGluZQ0KPsKgwqDCoDQwZDlkZDRmMWM1ZCBydGx3
aWZpOiBidGNvZXg6IFJlbW92ZSBnbG9iYWwgdmFyaWFibGVzIGZyb20gYnRjb2V4DQoNCnY0LjE1
IGlzbid0IGxvbmd0ZXJtIHZlcnNpb24gYW5kIGhhZCBiZWVuIEVPTC4NCg0KPsKgDQo+IFN1cnBy
aXNpbmdseSwgaXQgc2VlbXMgZm9yY2luZyBhbnRfc2VsPTEgaXMgbm90IG5lZWRlZCBhbnltb3Jl
IG9uDQo+IHRoZXNlIG1hY2hpbmVzLCBhcyB0aGUgc2hvd24gYnkgdGhlIG51bWJlcnMgYmVsbG93
IChhbnRfc2VsPTAgbWVhbnMNCj4gdGhhdCBhY3R1YWxseSBubyBwYXJhbWV0ZXIgd2FzIHBhc3Nl
ZCB0byB0aGUgbW9kdWxlKS4gSSBoYXZlIHBvd2VyZWQNCj4gb2ZmIHRoZSBtYWNoaW5lIGFuZCBk
b25lIGEgY29sZCBib290IGZvciBldmVyeSB0ZXN0LiBJdCBzZWVtcw0KPiBzb21ldGhpbmcgaGF2
ZSBjaGFuZ2VkIGluIHRoZSBhbnRlbm5hIGF1dG8tc2VsZWN0aW9uIGNvZGUgc2luY2UgdjQuMTEs
DQo+IHRoZSBsYXRlc3QgcG9pbnQgd2hlcmUgSSBjb3VsZCBjb25maXJtIHdlIGRlZmluaXRlbHkg
bmVlZCB0byBmb3JjZQ0KPiBhbnRfc2VsPTEuIEkndmUgYmVlbiB0cnlpbmcgdG8gdW5kZXJzdGFu
ZCB3aGF0IGNhdXNlcyB0aGlzIGRpZmZlcmVuY2UsDQo+IGJ1dCBoYXZlbid0IG1hZGUgcHJvZ3Jl
c3Mgb24gdGhhdCBzbyBmYXIsIHNvIGFueSBzdWdnZXN0aW9ucyBhcmUNCj4gYXBwcmVjaWF0ZWQg
KHdlIGFyZSB0cnlpbmcgdG8gZGVjaWRlIGlmIHdlIGNhbiBjb25maWRlbnRseSBkcm9wIHRoZQ0K
PiBkb3duc3RyZWFtIERNSSBxdWlya3MgZm9yIHRoZXNlIHNwZWNpZmljIG1hY2hpbmVzKS4NCj7C
oA0KSSB0aGluayB5b3VyIHJ0bDg3MjNiZSBtb2R1bGUgcHJvZ3JhbWVkIGNvcnJlY3QgZWZ1c2Ug
Y29udGVudCwgc28gaXQNCndvcmtzIHByb3Blcmx5IHdpdGggYW50X3NlbD0wLCBhbmQgcXVpcmsg
aXNuJ3QgcmVxdWlyZWQgZm9yIHlvdXINCm1hY2hpbmUuDQoNCj7CoMKgwqB3LWQtbiBhbnRfc2Vs
PTA6IC0xNC4wMCBkQm0swqDCoDY5LjUgTWJwcyAtPiBnb29kDQo+wqDCoMKgdy1kLW4gYW50X3Nl
bD0xOiAtMTAuMDAgZEJtLMKgwqA0MS4xIE1icHMgLT4gZ29vZA0KPsKgwqDCoHctZC1uIGFudF9z
ZWw9MjogLTQ0LjAwIGRCbSzCoMKgwqA2MDcga2JwcyAtPiBiYWQNCj7CoA0KPsKgwqDCoHY0LjE2
IGFudF9zZWw9MDogLTEyLjAwIGRCbSzCoMKgNjMuMCBNYnBzIC0+IGdvb2QNCj7CoMKgwqB2NC4x
NiBhbnRfc2VsPTE6IC0gOC4wMCBkQm0swqDCoDY5LjAgTWJwcyAtPiBnb29kDQo+wqDCoMKgdjQu
MTYgYW50X3NlbD0yOiAtNTAuMDAgZEJtLMKgwqDCoDIyNCBrYnBzIC0+IGJhZA0KPsKgDQo+wqDC
oMKgdjQuMTUgYW50X3NlbD0wOiAtIDguMDAgZEJtLMKgwqAzMy4wIE1icHMgLT4gZ29vZA0KPsKg
wqDCoHY0LjE1IGFudF9zZWw9MTogLTEwLjAwIGRCbSzCoMKgMzguMSBNYnBzIC0+IGdvb2QNCj7C
oMKgwqB2NC4xNSBhbnRfc2VsPTI6IC00OC4wMCBkQm0swqDCoMKgMjA2IGticHMgLT4gYmFkDQo+
wqANCg0KV2l0aCB5b3VyIHJlc3VsdHMsIHRoZSBlZnVzZSBjb250ZW50IGlzIHByb2dyYW1tZWQg
YXMgb25lIG9yIHR3byBhbnRlbm5hDQpvbiBBVVggcGF0aC4NCg0KUmVnYXJkcywNClBLDQoNCg==

2018-05-09 20:33:53

by João Paulo Rechi Vita

[permalink] [raw]
Subject: Re: RTL8723BE performance regression

On Tue, May 8, 2018 at 1:37 AM, Pkshih <[email protected]> wrote:
> On Mon, 2018-05-07 at 14:49 -0700, Jo=C3=A3o Paulo Rechi Vita wrote:
>> On Tue, May 1, 2018 at 10:58 PM, Pkshih <[email protected]> wrote:
>> > On Wed, 2018-05-02 at 05:44 +0000, Pkshih wrote:
>> >>
>> >> > -----Original Message-----
>> >> > From: Jo=C3=A3o Paulo Rechi Vita [mailto:[email protected]]
>> >> > Sent: Wednesday, May 02, 2018 6:41 AM
>> >> > To: Larry Finger
>> >> > Cc: Steve deRosier; =E8=8E=8A=E5=BD=A5=E5=AE=A3; Pkshih; Birming Ch=
iu; Shaofu; Steven Ting; Chaoming_Li; Kalle Valo;
>> >> > linux-wireless; Network Development; LKML; Daniel Drake; Jo=C3=A3o =
Paulo Rechi Vita; linux@endless
>> m.c
>> >> om
>> >> > Subject: Re: RTL8723BE performance regression
>> >> >
>> >> > On Tue, Apr 3, 2018 at 7:51 PM, Larry Finger <Larry.Finger@lwfinger=
.net> wrote:
>> >> > > On 04/03/2018 09:37 PM, Jo=C3=A3o Paulo Rechi Vita wrote:
>> >> > >>
>> >> > >> On Tue, Apr 3, 2018 at 7:28 PM, Larry Finger <Larry.Finger@lwfin=
ger.net>
>> >> > >> wrote:
>> >> > >>
>> >> > >> (...)
>> >> > >>
>> >> > >>> As the antenna selection code changes affected your first bisec=
tion, do
>> >> > >>> you
>> >> > >>> have one of those HP laptops with only one antenna and the inco=
rrect
>> >> > >>> coding
>> >> > >>> in the FUSE?
>> >> > >>
>> >> > >>
>> >> > >> Yes, that is why I've been passing ant_sel=3D1 during my tests -=
- this
>> >> > >> was needed to achieve a good performance in the past, before thi=
s
>> >> > >> regression. I've also opened the laptop chassis and confirmed th=
e
>> >> > >> antenna cable is plugged to the connector labeled with "1" on th=
e
>> >> > >> card.
>> >> > >>
>> >> > >>> If so, please make sure that you still have the same signal
>> >> > >>> strength for good and bad cases. I have tried to keep the drive=
r and the
>> >> > >>> btcoex code in sync, but there may be some combinations of ante=
nna
>> >> > >>> configuration and FUSE contents that cause the code to fail.
>> >> > >>>
>> >> > >>
>> >> > >> What is the recommended way to monitor the signal strength?
>> >> > >
>> >> > >
>> >> > > The btcoex code is developed for multiple platforms by a differen=
t group
>> >> > > than the Linux driver. I think they made a change that caused ant=
_sel to
>> >> > > switch from 1 to 2. At least numerous comments at
>> >> > > github.com/lwfinger/rtlwifi_new claimed they needed to make that =
change.
>> >> > >
>> >> > > Mhy recommended method is to verify the wifi device name with "iw=
dev". Then
>> >> > > using that device
>> >> > >
>> >> > > sudo iw dev <dev_name> scan | egrep "SSID|signal"
>> >> > >
>> >> >
>> >> > I have confirmed that the performance regression is indeed tied to
>> >> > signal strength: on the good cases signal was between -16 and -8 dB=
m,
>> >> > whereas in bad cases signal was always between -50 to - 40 dBm. I'v=
e
>> >> > also switched to testing bandwidth in controlled LAN environment us=
ing
>> >> > iperf3, as suggested by Steve deRosier, with the DUT being the only
>> >> > machine connected to the 2.4 GHz radio and the machine running the
>> >> > iperf3 server connected via ethernet.
>> >> >
>> >>
>> >> We have new experimental results in commit af8a41cccf8f46 ("rtlwifi: =
cleanup
>> >> 8723be ant_sel definition"). You can use the above commit and do the =
same
>> >> experiments (with ant_sel=3D0, 1 and 2) in your side, and then share =
your results.
>> >> Since performance is tied to signal strength, you can only share sign=
al strength.
>> >>
>> >
>> > Please pay attention to cold reboot once ant_sel is changed.
>> >
>>
>> I've tested the commit mentioned above and it fixes the problem on top
>> of v4.16 (in addition to the latest wireless-drivers-next also been
>> fixed as it already contains such commit). On v4.15, we also need the
>> following commits before "af8a41cccf8f rtlwifi: cleanup 8723be ant_sel
>> definition" to have a good performance again:
>>
>> 874e837d67d0 rtlwifi: fill FW version and subversion
>> a44709bba70f rtlwifi: btcoex: Add power_on_setting routine
>> 40d9dd4f1c5d rtlwifi: btcoex: Remove global variables from btcoex
>
> v4.15 isn't longterm version and had been EOL.
>

Right, but this is a performace regression in comparison to v4.11, so
if "af8a41cccf8f rtlwifi: cleanup 8723be ant_sel definition" is marked
for stable, shouldn't these other patches be brought as well? All
releases since v4.11 are probably affected, but honestly I don't have
a strong understanding of how the stable trees operate in situations
like this.

>>
>> Surprisingly, it seems forcing ant_sel=3D1 is not needed anymore on
>> these machines, as the shown by the numbers bellow (ant_sel=3D0 means
>> that actually no parameter was passed to the module). I have powered
>> off the machine and done a cold boot for every test. It seems
>> something have changed in the antenna auto-selection code since v4.11,
>> the latest point where I could confirm we definitely need to force
>> ant_sel=3D1. I've been trying to understand what causes this difference,
>> but haven't made progress on that so far, so any suggestions are
>> appreciated (we are trying to decide if we can confidently drop the
>> downstream DMI quirks for these specific machines).
>>
> I think your rtl8723be module programed correct efuse content, so it
> works properly with ant_sel=3D0, and quirk isn't required for your
> machine.
>
>> w-d-n ant_sel=3D0: -14.00 dBm, 69.5 Mbps -> good
>> w-d-n ant_sel=3D1: -10.00 dBm, 41.1 Mbps -> good
>> w-d-n ant_sel=3D2: -44.00 dBm, 607 kbps -> bad
>>
>> v4.16 ant_sel=3D0: -12.00 dBm, 63.0 Mbps -> good
>> v4.16 ant_sel=3D1: - 8.00 dBm, 69.0 Mbps -> good
>> v4.16 ant_sel=3D2: -50.00 dBm, 224 kbps -> bad
>>
>> v4.15 ant_sel=3D0: - 8.00 dBm, 33.0 Mbps -> good
>> v4.15 ant_sel=3D1: -10.00 dBm, 38.1 Mbps -> good
>> v4.15 ant_sel=3D2: -48.00 dBm, 206 kbps -> bad
>>
>
> With your results, the efuse content is programmed as one or two antenna
> on AUX path.
>

With v4.11 I had good performance results on this very same machine
(thus same efuse contents) only when passing ant_sel=3D1, so there has
to be some change on the code that parses the efuse contents and
decides which antenna will be used.

--
Jo=C3=A3o Paulo Rechi Vita
http://about.me/jprvita

2018-05-01 22:46:37

by João Paulo Rechi Vita

[permalink] [raw]
Subject: [RFC PATCH 3/3] rtlwifi: btcoex: Always use 2ant-functions for RTL8723BE

This partially reverts commit 7937f02d1953952a6eaf626b175ea9db5541e699,
which not only hooked external functions for newer ICs, as described in
its commit message, but also changed the behavior for RTL8723BE
depending on the value of board_info.btdm_ant_num.

When board_info.btdm_ant_num == 1, 7937f02d19 changes the codepath to
use a whole different set of functions ex_btc8723b1ant_*, instead of the
ex_btc8723b2ant_* that were used before it.

This drastically affects the upload performance and signal strenght on
the HP 240 G4 laptop, as shown by the results bellow:

Without this change:

$ sudo iw dev wlp2s0 scan | grep -B3 JJ | grep signal
signal: -42.00 dBm
$ iperf3 -c 192.168.1.254
Connecting to host 192.168.1.254, port 5201
[ 4] local 192.168.1.253 port 39678 connected to 192.168.1.254 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 735 KBytes 6.02 Mbits/sec 1 1.41 KBytes
[ 4] 1.00-2.00 sec 274 KBytes 2.25 Mbits/sec 1 1.41 KBytes
[ 4] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 4] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 4] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 1 28.3 KBytes
[ 4] 5.00-6.00 sec 423 KBytes 3.47 Mbits/sec 3 41.0 KBytes
[ 4] 6.00-7.00 sec 840 KBytes 6.88 Mbits/sec 0 58.0 KBytes
[ 4] 7.00-8.00 sec 830 KBytes 6.79 Mbits/sec 1 1.41 KBytes
[ 4] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 4] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 3.03 MBytes 2.54 Mbits/sec 7 sender
[ 4] 0.00-10.00 sec 2.88 MBytes 2.41 Mbits/sec receiver

iperf Done.

With this change:

$ sudo iw dev wlp2s0 scan | grep -B3 JJ | grep signal
signal: -14.00 dBm
$ iperf3 -c 192.168.1.254
Connecting to host 192.168.1.254, port 5201
[ 4] local 192.168.1.253 port 59380 connected to 192.168.1.254 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 4.63 MBytes 38.8 Mbits/sec 0 194 KBytes
[ 4] 1.00-2.00 sec 4.58 MBytes 38.4 Mbits/sec 0 273 KBytes
[ 4] 2.00-3.00 sec 5.05 MBytes 42.3 Mbits/sec 0 332 KBytes
[ 4] 3.00-4.00 sec 4.98 MBytes 41.8 Mbits/sec 0 393 KBytes
[ 4] 4.00-5.00 sec 4.76 MBytes 39.9 Mbits/sec 0 434 KBytes
[ 4] 5.00-6.00 sec 4.85 MBytes 40.7 Mbits/sec 0 434 KBytes
[ 4] 6.00-7.00 sec 3.96 MBytes 33.2 Mbits/sec 0 464 KBytes
[ 4] 7.00-8.00 sec 4.74 MBytes 39.8 Mbits/sec 0 481 KBytes
[ 4] 8.00-9.00 sec 4.22 MBytes 35.4 Mbits/sec 0 508 KBytes
[ 4] 9.00-10.00 sec 4.09 MBytes 34.3 Mbits/sec 0 564 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 45.9 MBytes 38.5 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 45.0 MBytes 37.7 Mbits/sec receiver

iperf Done.

Signed-off-by: João Paulo Rechi Vita <[email protected]>
---
.../realtek/rtlwifi/btcoexist/halbtcoutsrc.c | 62 ++++---------------
1 file changed, 12 insertions(+), 50 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
index 86182b917c92..a862b5efdf55 100644
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
@@ -1452,10 +1452,7 @@ void exhalbtc_init_hw_config(struct btc_coexist *btcoexist, bool wifi_only)
else if (btcoexist->board_info.btdm_ant_num == 1)
ex_btc8821a1ant_init_hwconfig(btcoexist, wifi_only);
} else if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
- if (btcoexist->board_info.btdm_ant_num == 2)
- ex_btc8723b2ant_init_hwconfig(btcoexist);
- else if (btcoexist->board_info.btdm_ant_num == 1)
- ex_btc8723b1ant_init_hwconfig(btcoexist, wifi_only);
+ ex_btc8723b2ant_init_hwconfig(btcoexist);
} else if (IS_HARDWARE_TYPE_8723A(btcoexist->adapter)) {
/* 8723A has no this function */
} else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
@@ -1481,10 +1478,7 @@ void exhalbtc_init_coex_dm(struct btc_coexist *btcoexist)
else if (btcoexist->board_info.btdm_ant_num == 1)
ex_btc8821a1ant_init_coex_dm(btcoexist);
} else if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
- if (btcoexist->board_info.btdm_ant_num == 2)
- ex_btc8723b2ant_init_coex_dm(btcoexist);
- else if (btcoexist->board_info.btdm_ant_num == 1)
- ex_btc8723b1ant_init_coex_dm(btcoexist);
+ ex_btc8723b2ant_init_coex_dm(btcoexist);
} else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
if (btcoexist->board_info.btdm_ant_num == 2)
ex_btc8192e2ant_init_coex_dm(btcoexist);
@@ -1516,10 +1510,7 @@ void exhalbtc_ips_notify(struct btc_coexist *btcoexist, u8 type)
else if (btcoexist->board_info.btdm_ant_num == 1)
ex_btc8821a1ant_ips_notify(btcoexist, ips_type);
} else if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
- if (btcoexist->board_info.btdm_ant_num == 2)
- ex_btc8723b2ant_ips_notify(btcoexist, ips_type);
- else if (btcoexist->board_info.btdm_ant_num == 1)
- ex_btc8723b1ant_ips_notify(btcoexist, ips_type);
+ ex_btc8723b2ant_ips_notify(btcoexist, ips_type);
} else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
if (btcoexist->board_info.btdm_ant_num == 2)
ex_btc8192e2ant_ips_notify(btcoexist, ips_type);
@@ -1549,10 +1540,7 @@ void exhalbtc_lps_notify(struct btc_coexist *btcoexist, u8 type)
else if (btcoexist->board_info.btdm_ant_num == 1)
ex_btc8821a1ant_lps_notify(btcoexist, lps_type);
} else if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
- if (btcoexist->board_info.btdm_ant_num == 2)
- ex_btc8723b2ant_lps_notify(btcoexist, lps_type);
- else if (btcoexist->board_info.btdm_ant_num == 1)
- ex_btc8723b1ant_lps_notify(btcoexist, lps_type);
+ ex_btc8723b2ant_lps_notify(btcoexist, lps_type);
} else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
if (btcoexist->board_info.btdm_ant_num == 2)
ex_btc8192e2ant_lps_notify(btcoexist, lps_type);
@@ -1582,10 +1570,7 @@ void exhalbtc_scan_notify(struct btc_coexist *btcoexist, u8 type)
else if (btcoexist->board_info.btdm_ant_num == 1)
ex_btc8821a1ant_scan_notify(btcoexist, scan_type);
} else if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
- if (btcoexist->board_info.btdm_ant_num == 2)
- ex_btc8723b2ant_scan_notify(btcoexist, scan_type);
- else if (btcoexist->board_info.btdm_ant_num == 1)
- ex_btc8723b1ant_scan_notify(btcoexist, scan_type);
+ ex_btc8723b2ant_scan_notify(btcoexist, scan_type);
} else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
if (btcoexist->board_info.btdm_ant_num == 2)
ex_btc8192e2ant_scan_notify(btcoexist, scan_type);
@@ -1630,10 +1615,7 @@ void exhalbtc_connect_notify(struct btc_coexist *btcoexist, u8 action)
else if (btcoexist->board_info.btdm_ant_num == 1)
ex_btc8821a1ant_connect_notify(btcoexist, asso_type);
} else if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
- if (btcoexist->board_info.btdm_ant_num == 2)
- ex_btc8723b2ant_connect_notify(btcoexist, asso_type);
- else if (btcoexist->board_info.btdm_ant_num == 1)
- ex_btc8723b1ant_connect_notify(btcoexist, asso_type);
+ ex_btc8723b2ant_connect_notify(btcoexist, asso_type);
} else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
if (btcoexist->board_info.btdm_ant_num == 2)
ex_btc8192e2ant_connect_notify(btcoexist, asso_type);
@@ -1666,10 +1648,7 @@ void exhalbtc_mediastatus_notify(struct btc_coexist *btcoexist,
else if (btcoexist->board_info.btdm_ant_num == 1)
ex_btc8821a1ant_media_status_notify(btcoexist, status);
} else if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
- if (btcoexist->board_info.btdm_ant_num == 2)
- ex_btc8723b2ant_media_status_notify(btcoexist, status);
- else if (btcoexist->board_info.btdm_ant_num == 1)
- ex_btc8723b1ant_media_status_notify(btcoexist, status);
+ ex_btc8723b2ant_media_status_notify(btcoexist, status);
} else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
if (btcoexist->board_info.btdm_ant_num == 2)
ex_btc8192e2ant_media_status_notify(btcoexist, status);
@@ -1709,12 +1688,8 @@ void exhalbtc_special_packet_notify(struct btc_coexist *btcoexist, u8 pkt_type)
ex_btc8821a1ant_special_packet_notify(btcoexist,
packet_type);
} else if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
- if (btcoexist->board_info.btdm_ant_num == 2)
- ex_btc8723b2ant_special_packet_notify(btcoexist,
- packet_type);
- else if (btcoexist->board_info.btdm_ant_num == 1)
- ex_btc8723b1ant_special_packet_notify(btcoexist,
- packet_type);
+ ex_btc8723b2ant_special_packet_notify(btcoexist,
+ packet_type);
} else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
if (btcoexist->board_info.btdm_ant_num == 2)
ex_btc8192e2ant_special_packet_notify(btcoexist,
@@ -1741,12 +1716,7 @@ void exhalbtc_bt_info_notify(struct btc_coexist *btcoexist,
ex_btc8821a1ant_bt_info_notify(btcoexist, tmp_buf,
length);
} else if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
- if (btcoexist->board_info.btdm_ant_num == 2)
- ex_btc8723b2ant_bt_info_notify(btcoexist, tmp_buf,
- length);
- else if (btcoexist->board_info.btdm_ant_num == 1)
- ex_btc8723b1ant_bt_info_notify(btcoexist, tmp_buf,
- length);
+ ex_btc8723b2ant_bt_info_notify(btcoexist, tmp_buf, length);
} else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
if (btcoexist->board_info.btdm_ant_num == 2)
ex_btc8192e2ant_bt_info_notify(btcoexist, tmp_buf,
@@ -1763,8 +1733,6 @@ void exhalbtc_rf_status_notify(struct btc_coexist *btcoexist, u8 type)

if (IS_HARDWARE_TYPE_8821(btcoexist->adapter)) {
} else if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
- if (btcoexist->board_info.btdm_ant_num == 1)
- ex_btc8723b1ant_rf_status_notify(btcoexist, type);
} else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
}
}
@@ -1804,10 +1772,7 @@ void exhalbtc_halt_notify(struct btc_coexist *btcoexist)
else if (btcoexist->board_info.btdm_ant_num == 1)
ex_btc8821a1ant_halt_notify(btcoexist);
} else if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
- if (btcoexist->board_info.btdm_ant_num == 2)
- ex_btc8723b2ant_halt_notify(btcoexist);
- else if (btcoexist->board_info.btdm_ant_num == 1)
- ex_btc8723b1ant_halt_notify(btcoexist);
+ ex_btc8723b2ant_halt_notify(btcoexist);
} else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
if (btcoexist->board_info.btdm_ant_num == 2)
ex_btc8192e2ant_halt_notify(btcoexist);
@@ -1880,10 +1845,7 @@ void exhalbtc_periodical(struct btc_coexist *btcoexist)
if (!halbtc_under_ips(btcoexist))
ex_btc8821a1ant_periodical(btcoexist);
} else if (IS_HARDWARE_TYPE_8723B(btcoexist->adapter)) {
- if (btcoexist->board_info.btdm_ant_num == 2)
- ex_btc8723b2ant_periodical(btcoexist);
- else if (btcoexist->board_info.btdm_ant_num == 1)
- ex_btc8723b1ant_periodical(btcoexist);
+ ex_btc8723b2ant_periodical(btcoexist);
} else if (IS_HARDWARE_TYPE_8192E(btcoexist->adapter)) {
if (btcoexist->board_info.btdm_ant_num == 2)
ex_btc8192e2ant_periodical(btcoexist);
--
2.17.0

2018-05-02 05:58:57

by Ping-Ke Shih

[permalink] [raw]
Subject: Re: RTL8723BE performance regression

T24gV2VkLCAyMDE4LTA1LTAyIGF0IDA1OjQ0ICswMDAwLCBQa3NoaWggd3JvdGU6DQo+IA0KPiA+
IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogSm/Do28gUGF1bG8gUmVjaGkg
Vml0YSBbbWFpbHRvOmpwcnZpdGFAZ21haWwuY29tXQ0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgTWF5
IDAyLCAyMDE4IDY6NDEgQU0NCj4gPiBUbzogTGFycnkgRmluZ2VyDQo+ID4gQ2M6IFN0ZXZlIGRl
Um9zaWVyOyDojorlvaXlrqM7IFBrc2hpaDsgQmlybWluZyBDaGl1OyBTaGFvZnU7IFN0ZXZlbiBU
aW5nOyBDaGFvbWluZ19MaTsgS2FsbGUgVmFsbzsNCj4gPiBsaW51eC13aXJlbGVzczsgTmV0d29y
ayBEZXZlbG9wbWVudDsgTEtNTDsgRGFuaWVsIERyYWtlOyBKb8OjbyBQYXVsbyBSZWNoaSBWaXRh
OyBsaW51eEBlbmRsZXNzbS5jDQo+IG9tDQo+ID4gU3ViamVjdDogUmU6IFJUTDg3MjNCRSBwZXJm
b3JtYW5jZSByZWdyZXNzaW9uDQo+ID7CoA0KPiA+IE9uIFR1ZSwgQXByIDMsIDIwMTggYXQgNzo1
MSBQTSwgTGFycnkgRmluZ2VyIDxMYXJyeS5GaW5nZXJAbHdmaW5nZXIubmV0PiB3cm90ZToNCj4g
PiA+IE9uIDA0LzAzLzIwMTggMDk6MzcgUE0sIEpvw6NvIFBhdWxvIFJlY2hpIFZpdGEgd3JvdGU6
DQo+ID4gPj4NCj4gPiA+PiBPbiBUdWUsIEFwciAzLCAyMDE4IGF0IDc6MjggUE0sIExhcnJ5IEZp
bmdlciA8TGFycnkuRmluZ2VyQGx3ZmluZ2VyLm5ldD4NCj4gPiA+PiB3cm90ZToNCj4gPiA+Pg0K
PiA+ID4+ICguLi4pDQo+ID4gPj4NCj4gPiA+Pj4gQXMgdGhlIGFudGVubmEgc2VsZWN0aW9uIGNv
ZGUgY2hhbmdlcyBhZmZlY3RlZCB5b3VyIGZpcnN0IGJpc2VjdGlvbiwgZG8NCj4gPiA+Pj4geW91
DQo+ID4gPj4+IGhhdmUgb25lIG9mIHRob3NlIEhQIGxhcHRvcHMgd2l0aCBvbmx5IG9uZSBhbnRl
bm5hIGFuZCB0aGUgaW5jb3JyZWN0DQo+ID4gPj4+IGNvZGluZw0KPiA+ID4+PiBpbiB0aGUgRlVT
RT8NCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4gWWVzLCB0aGF0IGlzIHdoeSBJJ3ZlIGJlZW4gcGFz
c2luZyBhbnRfc2VsPTEgZHVyaW5nIG15IHRlc3RzIC0tIHRoaXMNCj4gPiA+PiB3YXMgbmVlZGVk
IHRvIGFjaGlldmUgYSBnb29kIHBlcmZvcm1hbmNlIGluIHRoZSBwYXN0LCBiZWZvcmUgdGhpcw0K
PiA+ID4+IHJlZ3Jlc3Npb24uIEkndmUgYWxzbyBvcGVuZWQgdGhlIGxhcHRvcCBjaGFzc2lzIGFu
ZCBjb25maXJtZWQgdGhlDQo+ID4gPj4gYW50ZW5uYSBjYWJsZSBpcyBwbHVnZ2VkIHRvIHRoZSBj
b25uZWN0b3IgbGFiZWxlZCB3aXRoICIxIiBvbiB0aGUNCj4gPiA+PiBjYXJkLg0KPiA+ID4+DQo+
ID4gPj4+IElmIHNvLCBwbGVhc2UgbWFrZSBzdXJlIHRoYXQgeW91IHN0aWxsIGhhdmUgdGhlIHNh
bWUgc2lnbmFsDQo+ID4gPj4+IHN0cmVuZ3RoIGZvciBnb29kIGFuZCBiYWQgY2FzZXMuIEkgaGF2
ZSB0cmllZCB0byBrZWVwIHRoZSBkcml2ZXIgYW5kIHRoZQ0KPiA+ID4+PiBidGNvZXggY29kZSBp
biBzeW5jLCBidXQgdGhlcmUgbWF5IGJlIHNvbWUgY29tYmluYXRpb25zIG9mIGFudGVubmENCj4g
PiA+Pj4gY29uZmlndXJhdGlvbiBhbmQgRlVTRSBjb250ZW50cyB0aGF0IGNhdXNlIHRoZSBjb2Rl
IHRvIGZhaWwuDQo+ID4gPj4+DQo+ID4gPj4NCj4gPiA+PiBXaGF0IGlzIHRoZSByZWNvbW1lbmRl
ZCB3YXkgdG8gbW9uaXRvciB0aGUgc2lnbmFsIHN0cmVuZ3RoPw0KPiA+ID4NCj4gPiA+DQo+ID4g
PiBUaGUgYnRjb2V4IGNvZGUgaXMgZGV2ZWxvcGVkIGZvciBtdWx0aXBsZSBwbGF0Zm9ybXMgYnkg
YSBkaWZmZXJlbnQgZ3JvdXANCj4gPiA+IHRoYW4gdGhlIExpbnV4IGRyaXZlci4gSSB0aGluayB0
aGV5IG1hZGUgYSBjaGFuZ2UgdGhhdCBjYXVzZWQgYW50X3NlbCB0bw0KPiA+ID4gc3dpdGNoIGZy
b20gMSB0byAyLiBBdCBsZWFzdCBudW1lcm91cyBjb21tZW50cyBhdA0KPiA+ID4gZ2l0aHViLmNv
bS9sd2Zpbmdlci9ydGx3aWZpX25ldyBjbGFpbWVkIHRoZXkgbmVlZGVkIHRvIG1ha2UgdGhhdCBj
aGFuZ2UuDQo+ID4gPg0KPiA+ID4gTWh5IHJlY29tbWVuZGVkIG1ldGhvZCBpcyB0byB2ZXJpZnkg
dGhlIHdpZmkgZGV2aWNlIG5hbWUgd2l0aCAiaXcgZGV2Ii4gVGhlbg0KPiA+ID4gdXNpbmcgdGhh
dCBkZXZpY2UNCj4gPiA+DQo+ID4gPiBzdWRvIGl3IGRldiA8ZGV2X25hbWU+IHNjYW4gfCBlZ3Jl
cCAiU1NJRHxzaWduYWwiDQo+ID4gPg0KPiA+wqANCj4gPiBJIGhhdmUgY29uZmlybWVkIHRoYXQg
dGhlIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gaXMgaW5kZWVkIHRpZWQgdG8NCj4gPiBzaWduYWwg
c3RyZW5ndGg6IG9uIHRoZSBnb29kIGNhc2VzIHNpZ25hbCB3YXMgYmV0d2VlbiAtMTYgYW5kIC04
IGRCbSwNCj4gPiB3aGVyZWFzIGluIGJhZCBjYXNlcyBzaWduYWwgd2FzIGFsd2F5cyBiZXR3ZWVu
IC01MCB0byAtIDQwIGRCbS4gSSd2ZQ0KPiA+IGFsc28gc3dpdGNoZWQgdG8gdGVzdGluZyBiYW5k
d2lkdGggaW4gY29udHJvbGxlZCBMQU4gZW52aXJvbm1lbnQgdXNpbmcNCj4gPiBpcGVyZjMsIGFz
IHN1Z2dlc3RlZCBieSBTdGV2ZSBkZVJvc2llciwgd2l0aCB0aGUgRFVUIGJlaW5nIHRoZSBvbmx5
DQo+ID4gbWFjaGluZSBjb25uZWN0ZWQgdG8gdGhlIDIuNCBHSHogcmFkaW8gYW5kIHRoZSBtYWNo
aW5lIHJ1bm5pbmcgdGhlDQo+ID4gaXBlcmYzIHNlcnZlciBjb25uZWN0ZWQgdmlhIGV0aGVybmV0
Lg0KPiA+wqANCj4gDQo+IFdlIGhhdmUgbmV3IGV4cGVyaW1lbnRhbCByZXN1bHRzIGluIGNvbW1p
dCBhZjhhNDFjY2NmOGY0NiAoInJ0bHdpZmk6IGNsZWFudXDCoA0KPiA4NzIzYmUgYW50X3NlbCBk
ZWZpbml0aW9uIikuIFlvdSBjYW4gdXNlIHRoZSBhYm92ZSBjb21taXQgYW5kIGRvIHRoZSBzYW1l
wqANCj4gZXhwZXJpbWVudHMgKHdpdGggYW50X3NlbD0wLCAxIGFuZCAyKSBpbiB5b3VyIHNpZGUs
IGFuZCB0aGVuIHNoYXJlIHlvdXIgcmVzdWx0cy4NCj4gU2luY2UgcGVyZm9ybWFuY2UgaXMgdGll
ZCB0byBzaWduYWwgc3RyZW5ndGgsIHlvdSBjYW4gb25seSBzaGFyZSBzaWduYWwgc3RyZW5ndGgu
DQo+IA0KDQpQbGVhc2UgcGF5IGF0dGVudGlvbiB0byBjb2xkIHJlYm9vdCBvbmNlIGFudF9zZWwg
aXMgY2hhbmdlZC4NCg0K

2018-05-01 22:46:35

by João Paulo Rechi Vita

[permalink] [raw]
Subject: [RFC PATCH 2/3] Revert "rtlwifi: fill FW version and subversion"

This reverts commit 874e837d67d0db179c9771f38fd21df07c703e93.

This drastically affects the upload performance and signal strenght on
the HP 240 G4 laptop, as shown by the results bellow:

Without this change:

$ sudo iw dev wlp2s0 scan | grep -B3 JJ | grep signal
signal: -42.00 dBm
$ iperf3 -c 192.168.1.254
Connecting to host 192.168.1.254, port 5201
[ 4] local 192.168.1.253 port 39678 connected to 192.168.1.254 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 735 KBytes 6.02 Mbits/sec 1 1.41 KBytes
[ 4] 1.00-2.00 sec 274 KBytes 2.25 Mbits/sec 1 1.41 KBytes
[ 4] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 4] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 4] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 1 28.3 KBytes
[ 4] 5.00-6.00 sec 423 KBytes 3.47 Mbits/sec 3 41.0 KBytes
[ 4] 6.00-7.00 sec 840 KBytes 6.88 Mbits/sec 0 58.0 KBytes
[ 4] 7.00-8.00 sec 830 KBytes 6.79 Mbits/sec 1 1.41 KBytes
[ 4] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 4] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 3.03 MBytes 2.54 Mbits/sec 7 sender
[ 4] 0.00-10.00 sec 2.88 MBytes 2.41 Mbits/sec receiver

iperf Done.

With this change:

$ sudo iw dev wlp2s0 scan | grep -B3 JJ | grep signal
signal: -14.00 dBm
$ iperf3 -c 192.168.1.254
Connecting to host 192.168.1.254, port 5201
[ 4] local 192.168.1.253 port 59380 connected to 192.168.1.254 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 4.63 MBytes 38.8 Mbits/sec 0 194 KBytes
[ 4] 1.00-2.00 sec 4.58 MBytes 38.4 Mbits/sec 0 273 KBytes
[ 4] 2.00-3.00 sec 5.05 MBytes 42.3 Mbits/sec 0 332 KBytes
[ 4] 3.00-4.00 sec 4.98 MBytes 41.8 Mbits/sec 0 393 KBytes
[ 4] 4.00-5.00 sec 4.76 MBytes 39.9 Mbits/sec 0 434 KBytes
[ 4] 5.00-6.00 sec 4.85 MBytes 40.7 Mbits/sec 0 434 KBytes
[ 4] 6.00-7.00 sec 3.96 MBytes 33.2 Mbits/sec 0 464 KBytes
[ 4] 7.00-8.00 sec 4.74 MBytes 39.8 Mbits/sec 0 481 KBytes
[ 4] 8.00-9.00 sec 4.22 MBytes 35.4 Mbits/sec 0 508 KBytes
[ 4] 9.00-10.00 sec 4.09 MBytes 34.3 Mbits/sec 0 564 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 45.9 MBytes 38.5 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 45.0 MBytes 37.7 Mbits/sec receiver

iperf Done.

Signed-off-by: João Paulo Rechi Vita <[email protected]>
---
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c | 2 --
drivers/net/wireless/realtek/rtlwifi/rtl8723com/fw_common.c | 2 --
2 files changed, 4 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
index 63874512598b..a2eca669873b 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
@@ -141,8 +141,6 @@ int rtl88e_download_fw(struct ieee80211_hw *hw,
return 1;

pfwheader = (struct rtlwifi_firmware_header *)rtlhal->pfirmware;
- rtlhal->fw_version = le16_to_cpu(pfwheader->version);
- rtlhal->fw_subversion = pfwheader->subversion;
pfwdata = rtlhal->pfirmware;
fwsize = rtlhal->fwsize;
RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG,
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723com/fw_common.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723com/fw_common.c
index 521039c5d4ce..0d1ebc861720 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723com/fw_common.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723com/fw_common.c
@@ -200,8 +200,6 @@ int rtl8723_download_fw(struct ieee80211_hw *hw,
return 1;

pfwheader = (struct rtlwifi_firmware_header *)rtlhal->pfirmware;
- rtlhal->fw_version = le16_to_cpu(pfwheader->version);
- rtlhal->fw_subversion = pfwheader->subversion;
pfwdata = rtlhal->pfirmware;
fwsize = rtlhal->fwsize;

--
2.17.0

2018-05-07 21:49:49

by João Paulo Rechi Vita

[permalink] [raw]
Subject: Re: RTL8723BE performance regression

On Tue, May 1, 2018 at 10:58 PM, Pkshih <[email protected]> wrote:
> On Wed, 2018-05-02 at 05:44 +0000, Pkshih wrote:
>>
>> > -----Original Message-----
>> > From: Jo=C3=A3o Paulo Rechi Vita [mailto:[email protected]]
>> > Sent: Wednesday, May 02, 2018 6:41 AM
>> > To: Larry Finger
>> > Cc: Steve deRosier; =E8=8E=8A=E5=BD=A5=E5=AE=A3; Pkshih; Birming Chiu;=
Shaofu; Steven Ting; Chaoming_Li; Kalle Valo;
>> > linux-wireless; Network Development; LKML; Daniel Drake; Jo=C3=A3o Pau=
lo Rechi Vita; [email protected]
>> om
>> > Subject: Re: RTL8723BE performance regression
>> >
>> > On Tue, Apr 3, 2018 at 7:51 PM, Larry Finger <[email protected]=
t> wrote:
>> > > On 04/03/2018 09:37 PM, Jo=C3=A3o Paulo Rechi Vita wrote:
>> > >>
>> > >> On Tue, Apr 3, 2018 at 7:28 PM, Larry Finger <Larry.Finger@lwfinger=
.net>
>> > >> wrote:
>> > >>
>> > >> (...)
>> > >>
>> > >>> As the antenna selection code changes affected your first bisectio=
n, do
>> > >>> you
>> > >>> have one of those HP laptops with only one antenna and the incorre=
ct
>> > >>> coding
>> > >>> in the FUSE?
>> > >>
>> > >>
>> > >> Yes, that is why I've been passing ant_sel=3D1 during my tests -- t=
his
>> > >> was needed to achieve a good performance in the past, before this
>> > >> regression. I've also opened the laptop chassis and confirmed the
>> > >> antenna cable is plugged to the connector labeled with "1" on the
>> > >> card.
>> > >>
>> > >>> If so, please make sure that you still have the same signal
>> > >>> strength for good and bad cases. I have tried to keep the driver a=
nd the
>> > >>> btcoex code in sync, but there may be some combinations of antenna
>> > >>> configuration and FUSE contents that cause the code to fail.
>> > >>>
>> > >>
>> > >> What is the recommended way to monitor the signal strength?
>> > >
>> > >
>> > > The btcoex code is developed for multiple platforms by a different g=
roup
>> > > than the Linux driver. I think they made a change that caused ant_se=
l to
>> > > switch from 1 to 2. At least numerous comments at
>> > > github.com/lwfinger/rtlwifi_new claimed they needed to make that cha=
nge.
>> > >
>> > > Mhy recommended method is to verify the wifi device name with "iw de=
v". Then
>> > > using that device
>> > >
>> > > sudo iw dev <dev_name> scan | egrep "SSID|signal"
>> > >
>> >
>> > I have confirmed that the performance regression is indeed tied to
>> > signal strength: on the good cases signal was between -16 and -8 dBm,
>> > whereas in bad cases signal was always between -50 to - 40 dBm. I've
>> > also switched to testing bandwidth in controlled LAN environment using
>> > iperf3, as suggested by Steve deRosier, with the DUT being the only
>> > machine connected to the 2.4 GHz radio and the machine running the
>> > iperf3 server connected via ethernet.
>> >
>>
>> We have new experimental results in commit af8a41cccf8f46 ("rtlwifi: cle=
anup
>> 8723be ant_sel definition"). You can use the above commit and do the sam=
e
>> experiments (with ant_sel=3D0, 1 and 2) in your side, and then share you=
r results.
>> Since performance is tied to signal strength, you can only share signal =
strength.
>>
>
> Please pay attention to cold reboot once ant_sel is changed.
>

I've tested the commit mentioned above and it fixes the problem on top
of v4.16 (in addition to the latest wireless-drivers-next also been
fixed as it already contains such commit). On v4.15, we also need the
following commits before "af8a41cccf8f rtlwifi: cleanup 8723be ant_sel
definition" to have a good performance again:

874e837d67d0 rtlwifi: fill FW version and subversion
a44709bba70f rtlwifi: btcoex: Add power_on_setting routine
40d9dd4f1c5d rtlwifi: btcoex: Remove global variables from btcoex

Surprisingly, it seems forcing ant_sel=3D1 is not needed anymore on
these machines, as the shown by the numbers bellow (ant_sel=3D0 means
that actually no parameter was passed to the module). I have powered
off the machine and done a cold boot for every test. It seems
something have changed in the antenna auto-selection code since v4.11,
the latest point where I could confirm we definitely need to force
ant_sel=3D1. I've been trying to understand what causes this difference,
but haven't made progress on that so far, so any suggestions are
appreciated (we are trying to decide if we can confidently drop the
downstream DMI quirks for these specific machines).

w-d-n ant_sel=3D0: -14.00 dBm, 69.5 Mbps -> good
w-d-n ant_sel=3D1: -10.00 dBm, 41.1 Mbps -> good
w-d-n ant_sel=3D2: -44.00 dBm, 607 kbps -> bad

v4.16 ant_sel=3D0: -12.00 dBm, 63.0 Mbps -> good
v4.16 ant_sel=3D1: - 8.00 dBm, 69.0 Mbps -> good
v4.16 ant_sel=3D2: -50.00 dBm, 224 kbps -> bad

v4.15 ant_sel=3D0: - 8.00 dBm, 33.0 Mbps -> good
v4.15 ant_sel=3D1: -10.00 dBm, 38.1 Mbps -> good
v4.15 ant_sel=3D2: -48.00 dBm, 206 kbps -> bad

--
Jo=C3=A3o Paulo Rechi Vita
http://about.me/jprvita

2018-05-14 02:51:14

by Ping-Ke Shih

[permalink] [raw]
Subject: Re: RTL8723BE performance regression

T24gV2VkLCAyMDE4LTA1LTA5IGF0IDEzOjMzIC0wNzAwLCBKb8OjbyBQYXVsbyBSZWNoaSBWaXRh
IHdyb3RlOg0KPiBPbiBUdWUsIE1heSA4LCAyMDE4IGF0IDE6MzcgQU0sIFBrc2hpaCA8cGtzaGlo
QHJlYWx0ZWsuY29tPiB3cm90ZToNCj4gPiBPbiBNb24sIDIwMTgtMDUtMDcgYXQgMTQ6NDkgLTA3
MDAsIEpvw6NvIFBhdWxvIFJlY2hpIFZpdGEgd3JvdGU6DQo+ID4+IE9uIFR1ZSwgTWF5IDEsIDIw
MTggYXQgMTA6NTggUE0sIFBrc2hpaCA8cGtzaGloQHJlYWx0ZWsuY29tPiB3cm90ZToNCj4gPj4g
PiBPbiBXZWQsIDIwMTgtMDUtMDIgYXQgMDU6NDQgKzAwMDAsIFBrc2hpaCB3cm90ZToNCj4gPj4g
Pj4NCj4gPj4gPj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiA+PiA+IEZyb206
IEpvw6NvIFBhdWxvIFJlY2hpIFZpdGEgW21haWx0bzpqcHJ2aXRhQGdtYWlsLmNvbV0NCj4gPj4g
Pj4gPiBTZW50OiBXZWRuZXNkYXksIE1heSAwMiwgMjAxOCA2OjQxIEFNDQo+ID4+ID4+ID4gVG86
IExhcnJ5IEZpbmdlcg0KPiA+PiA+PiA+IENjOiBTdGV2ZSBkZVJvc2llcjsg6I6K5b2l5a6jOyBQ
a3NoaWg7IEJpcm1pbmcgQ2hpdTsgU2hhb2Z1OyBTdGV2ZW4gVGluZzsgQ2hhb21pbmdfTGk7IEth
bGxlDQo+IFZhbG87DQo+ID4+ID4+ID4gbGludXgtd2lyZWxlc3M7IE5ldHdvcmsgRGV2ZWxvcG1l
bnQ7IExLTUw7IERhbmllbCBEcmFrZTsgSm/Do28gUGF1bG8gUmVjaGkgVml0YTsgbGludXhAZW5k
bA0KPiBlc3MNCj4gPj4gbS5jDQo+ID4+ID4+IG9tDQo+ID4+ID4+ID4gU3ViamVjdDogUmU6IFJU
TDg3MjNCRSBwZXJmb3JtYW5jZSByZWdyZXNzaW9uDQo+ID4+ID4+ID4NCj4gPj4gPj4gPiBPbiBU
dWUsIEFwciAzLCAyMDE4IGF0IDc6NTEgUE0sIExhcnJ5IEZpbmdlciA8TGFycnkuRmluZ2VyQGx3
ZmluZ2VyLm5ldD4gd3JvdGU6DQo+ID4+ID4+ID4gPiBPbiAwNC8wMy8yMDE4IDA5OjM3IFBNLCBK
b8OjbyBQYXVsbyBSZWNoaSBWaXRhIHdyb3RlOg0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4g
T24gVHVlLCBBcHIgMywgMjAxOCBhdCA3OjI4IFBNLCBMYXJyeSBGaW5nZXIgPExhcnJ5LkZpbmdl
ckBsd2Zpbmdlci5uZXQ+DQo+ID4+ID4+ID4gPj4gd3JvdGU6DQo+ID4+ID4+ID4gPj4NCj4gPj4g
Pj4gPiA+PiAoLi4uKQ0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4+IEFzIHRoZSBhbnRlbm5h
IHNlbGVjdGlvbiBjb2RlIGNoYW5nZXMgYWZmZWN0ZWQgeW91ciBmaXJzdCBiaXNlY3Rpb24sIGRv
DQo+ID4+ID4+ID4gPj4+IHlvdQ0KPiA+PiA+PiA+ID4+PiBoYXZlIG9uZSBvZiB0aG9zZSBIUCBs
YXB0b3BzIHdpdGggb25seSBvbmUgYW50ZW5uYSBhbmQgdGhlIGluY29ycmVjdA0KPiA+PiA+PiA+
ID4+PiBjb2RpbmcNCj4gPj4gPj4gPiA+Pj4gaW4gdGhlIEZVU0U/DQo+ID4+ID4+ID4gPj4NCj4g
Pj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+IFllcywgdGhhdCBpcyB3aHkgSSd2ZSBiZWVuIHBhc3Np
bmcgYW50X3NlbD0xIGR1cmluZyBteSB0ZXN0cyAtLSB0aGlzDQo+ID4+ID4+ID4gPj4gd2FzIG5l
ZWRlZCB0byBhY2hpZXZlIGEgZ29vZCBwZXJmb3JtYW5jZSBpbiB0aGUgcGFzdCwgYmVmb3JlIHRo
aXMNCj4gPj4gPj4gPiA+PiByZWdyZXNzaW9uLiBJJ3ZlIGFsc28gb3BlbmVkIHRoZSBsYXB0b3Ag
Y2hhc3NpcyBhbmQgY29uZmlybWVkIHRoZQ0KPiA+PiA+PiA+ID4+IGFudGVubmEgY2FibGUgaXMg
cGx1Z2dlZCB0byB0aGUgY29ubmVjdG9yIGxhYmVsZWQgd2l0aCAiMSIgb24gdGhlDQo+ID4+ID4+
ID4gPj4gY2FyZC4NCj4gPj4gPj4gPiA+Pg0KPiA+PiA+PiA+ID4+PiBJZiBzbywgcGxlYXNlIG1h
a2Ugc3VyZSB0aGF0IHlvdSBzdGlsbCBoYXZlIHRoZSBzYW1lIHNpZ25hbA0KPiA+PiA+PiA+ID4+
PiBzdHJlbmd0aCBmb3IgZ29vZCBhbmQgYmFkIGNhc2VzLiBJIGhhdmUgdHJpZWQgdG8ga2VlcCB0
aGUgZHJpdmVyIGFuZCB0aGUNCj4gPj4gPj4gPiA+Pj4gYnRjb2V4IGNvZGUgaW4gc3luYywgYnV0
IHRoZXJlIG1heSBiZSBzb21lIGNvbWJpbmF0aW9ucyBvZiBhbnRlbm5hDQo+ID4+ID4+ID4gPj4+
IGNvbmZpZ3VyYXRpb24gYW5kIEZVU0UgY29udGVudHMgdGhhdCBjYXVzZSB0aGUgY29kZSB0byBm
YWlsLg0KPiA+PiA+PiA+ID4+Pg0KPiA+PiA+PiA+ID4+DQo+ID4+ID4+ID4gPj4gV2hhdCBpcyB0
aGUgcmVjb21tZW5kZWQgd2F5IHRvIG1vbml0b3IgdGhlIHNpZ25hbCBzdHJlbmd0aD8NCj4gPj4g
Pj4gPiA+DQo+ID4+ID4+ID4gPg0KPiA+PiA+PiA+ID4gVGhlIGJ0Y29leCBjb2RlIGlzIGRldmVs
b3BlZCBmb3IgbXVsdGlwbGUgcGxhdGZvcm1zIGJ5IGEgZGlmZmVyZW50IGdyb3VwDQo+ID4+ID4+
ID4gPiB0aGFuIHRoZSBMaW51eCBkcml2ZXIuIEkgdGhpbmsgdGhleSBtYWRlIGEgY2hhbmdlIHRo
YXQgY2F1c2VkIGFudF9zZWwgdG8NCj4gPj4gPj4gPiA+IHN3aXRjaCBmcm9tIDEgdG8gMi4gQXQg
bGVhc3QgbnVtZXJvdXMgY29tbWVudHMgYXQNCj4gPj4gPj4gPiA+IGdpdGh1Yi5jb20vbHdmaW5n
ZXIvcnRsd2lmaV9uZXcgY2xhaW1lZCB0aGV5IG5lZWRlZCB0byBtYWtlIHRoYXQgY2hhbmdlLg0K
PiA+PiA+PiA+ID4NCj4gPj4gPj4gPiA+IE1oeSByZWNvbW1lbmRlZCBtZXRob2QgaXMgdG8gdmVy
aWZ5IHRoZSB3aWZpIGRldmljZSBuYW1lIHdpdGggIml3IGRldiIuIFRoZW4NCj4gPj4gPj4gPiA+
IHVzaW5nIHRoYXQgZGV2aWNlDQo+ID4+ID4+ID4gPg0KPiA+PiA+PiA+ID4gc3VkbyBpdyBkZXYg
PGRldl9uYW1lPiBzY2FuIHwgZWdyZXAgIlNTSUR8c2lnbmFsIg0KPiA+PiA+PiA+ID4NCj4gPj4g
Pj4gPg0KPiA+PiA+PiA+IEkgaGF2ZSBjb25maXJtZWQgdGhhdCB0aGUgcGVyZm9ybWFuY2UgcmVn
cmVzc2lvbiBpcyBpbmRlZWQgdGllZCB0bw0KPiA+PiA+PiA+IHNpZ25hbCBzdHJlbmd0aDogb24g
dGhlIGdvb2QgY2FzZXMgc2lnbmFsIHdhcyBiZXR3ZWVuIC0xNiBhbmQgLTggZEJtLA0KPiA+PiA+
PiA+IHdoZXJlYXMgaW4gYmFkIGNhc2VzIHNpZ25hbCB3YXMgYWx3YXlzIGJldHdlZW4gLTUwIHRv
IC0gNDAgZEJtLiBJJ3ZlDQo+ID4+ID4+ID4gYWxzbyBzd2l0Y2hlZCB0byB0ZXN0aW5nIGJhbmR3
aWR0aCBpbiBjb250cm9sbGVkIExBTiBlbnZpcm9ubWVudCB1c2luZw0KPiA+PiA+PiA+IGlwZXJm
MywgYXMgc3VnZ2VzdGVkIGJ5IFN0ZXZlIGRlUm9zaWVyLCB3aXRoIHRoZSBEVVQgYmVpbmcgdGhl
IG9ubHkNCj4gPj4gPj4gPiBtYWNoaW5lIGNvbm5lY3RlZCB0byB0aGUgMi40IEdIeiByYWRpbyBh
bmQgdGhlIG1hY2hpbmUgcnVubmluZyB0aGUNCj4gPj4gPj4gPiBpcGVyZjMgc2VydmVyIGNvbm5l
Y3RlZCB2aWEgZXRoZXJuZXQuDQo+ID4+ID4+ID4NCj4gPj4gPj4NCj4gPj4gPj4gV2UgaGF2ZSBu
ZXcgZXhwZXJpbWVudGFsIHJlc3VsdHMgaW4gY29tbWl0IGFmOGE0MWNjY2Y4ZjQ2ICgicnRsd2lm
aTogY2xlYW51cA0KPiA+PiA+PiA4NzIzYmUgYW50X3NlbCBkZWZpbml0aW9uIikuIFlvdSBjYW4g
dXNlIHRoZSBhYm92ZSBjb21taXQgYW5kIGRvIHRoZSBzYW1lDQo+ID4+ID4+IGV4cGVyaW1lbnRz
ICh3aXRoIGFudF9zZWw9MCwgMSBhbmQgMikgaW4geW91ciBzaWRlLCBhbmQgdGhlbiBzaGFyZSB5
b3VyIHJlc3VsdHMuDQo+ID4+ID4+IFNpbmNlIHBlcmZvcm1hbmNlIGlzIHRpZWQgdG8gc2lnbmFs
IHN0cmVuZ3RoLCB5b3UgY2FuIG9ubHkgc2hhcmUgc2lnbmFsIHN0cmVuZ3RoLg0KPiA+PiA+Pg0K
PiA+PiA+DQo+ID4+ID4gUGxlYXNlIHBheSBhdHRlbnRpb24gdG8gY29sZCByZWJvb3Qgb25jZSBh
bnRfc2VsIGlzIGNoYW5nZWQuDQo+ID4+ID4NCj4gPj4NCj4gPj4gSSd2ZSB0ZXN0ZWQgdGhlIGNv
bW1pdCBtZW50aW9uZWQgYWJvdmUgYW5kIGl0IGZpeGVzIHRoZSBwcm9ibGVtIG9uIHRvcA0KPiA+
PiBvZiB2NC4xNiAoaW4gYWRkaXRpb24gdG8gdGhlIGxhdGVzdCB3aXJlbGVzcy1kcml2ZXJzLW5l
eHQgYWxzbyBiZWVuDQo+ID4+IGZpeGVkIGFzIGl0IGFscmVhZHkgY29udGFpbnMgc3VjaCBjb21t
aXQpLiBPbiB2NC4xNSwgd2UgYWxzbyBuZWVkIHRoZQ0KPiA+PiBmb2xsb3dpbmcgY29tbWl0cyBi
ZWZvcmUgImFmOGE0MWNjY2Y4ZiBydGx3aWZpOiBjbGVhbnVwIDg3MjNiZSBhbnRfc2VsDQo+ID4+
IGRlZmluaXRpb24iIHRvIGhhdmUgYSBnb29kIHBlcmZvcm1hbmNlIGFnYWluOg0KPiA+Pg0KPiA+
PsKgwqDCoDg3NGU4MzdkNjdkMCBydGx3aWZpOiBmaWxsIEZXIHZlcnNpb24gYW5kIHN1YnZlcnNp
b24NCj4gPj7CoMKgwqBhNDQ3MDliYmE3MGYgcnRsd2lmaTogYnRjb2V4OiBBZGQgcG93ZXJfb25f
c2V0dGluZyByb3V0aW5lDQo+ID4+wqDCoMKgNDBkOWRkNGYxYzVkIHJ0bHdpZmk6IGJ0Y29leDog
UmVtb3ZlIGdsb2JhbCB2YXJpYWJsZXMgZnJvbSBidGNvZXgNCj4gPg0KPiA+IHY0LjE1IGlzbid0
IGxvbmd0ZXJtIHZlcnNpb24gYW5kIGhhZCBiZWVuIEVPTC4NCj4gPg0KPsKgDQo+IFJpZ2h0LCBi
dXQgdGhpcyBpcyBhIHBlcmZvcm1hY2UgcmVncmVzc2lvbiBpbiBjb21wYXJpc29uIHRvIHY0LjEx
LCBzbw0KPiBpZiAiYWY4YTQxY2NjZjhmIHJ0bHdpZmk6IGNsZWFudXAgODcyM2JlIGFudF9zZWwg
ZGVmaW5pdGlvbiIgaXMgbWFya2VkDQo+IGZvciBzdGFibGUsIHNob3VsZG4ndCB0aGVzZSBvdGhl
ciBwYXRjaGVzIGJlIGJyb3VnaHQgYXMgd2VsbD8gQWxsDQo+IHJlbGVhc2VzIHNpbmNlIHY0LjEx
IGFyZSBwcm9iYWJseSBhZmZlY3RlZCwgYnV0IGhvbmVzdGx5IEkgZG9uJ3QgaGF2ZQ0KPiBhIHN0
cm9uZyB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgc3RhYmxlIHRyZWVzIG9wZXJhdGUgaW4gc2l0
dWF0aW9ucw0KPiBsaWtlIHRoaXMuDQo+wqANCg0Kc2VlIGJlbG93Lg0KDQo+ID4+DQo+ID4+IFN1
cnByaXNpbmdseSwgaXQgc2VlbXMgZm9yY2luZyBhbnRfc2VsPTEgaXMgbm90IG5lZWRlZCBhbnlt
b3JlIG9uDQo+ID4+IHRoZXNlIG1hY2hpbmVzLCBhcyB0aGUgc2hvd24gYnkgdGhlIG51bWJlcnMg
YmVsbG93IChhbnRfc2VsPTAgbWVhbnMNCj4gPj4gdGhhdCBhY3R1YWxseSBubyBwYXJhbWV0ZXIg
d2FzIHBhc3NlZCB0byB0aGUgbW9kdWxlKS4gSSBoYXZlIHBvd2VyZWQNCj4gPj4gb2ZmIHRoZSBt
YWNoaW5lIGFuZCBkb25lIGEgY29sZCBib290IGZvciBldmVyeSB0ZXN0LiBJdCBzZWVtcw0KPiA+
PiBzb21ldGhpbmcgaGF2ZSBjaGFuZ2VkIGluIHRoZSBhbnRlbm5hIGF1dG8tc2VsZWN0aW9uIGNv
ZGUgc2luY2UgdjQuMTEsDQo+ID4+IHRoZSBsYXRlc3QgcG9pbnQgd2hlcmUgSSBjb3VsZCBjb25m
aXJtIHdlIGRlZmluaXRlbHkgbmVlZCB0byBmb3JjZQ0KPiA+PiBhbnRfc2VsPTEuIEkndmUgYmVl
biB0cnlpbmcgdG8gdW5kZXJzdGFuZCB3aGF0IGNhdXNlcyB0aGlzIGRpZmZlcmVuY2UsDQo+ID4+
IGJ1dCBoYXZlbid0IG1hZGUgcHJvZ3Jlc3Mgb24gdGhhdCBzbyBmYXIsIHNvIGFueSBzdWdnZXN0
aW9ucyBhcmUNCj4gPj4gYXBwcmVjaWF0ZWQgKHdlIGFyZSB0cnlpbmcgdG8gZGVjaWRlIGlmIHdl
IGNhbiBjb25maWRlbnRseSBkcm9wIHRoZQ0KPiA+PiBkb3duc3RyZWFtIERNSSBxdWlya3MgZm9y
IHRoZXNlIHNwZWNpZmljIG1hY2hpbmVzKS4NCj4gPj4NCj4gPiBJIHRoaW5rIHlvdXIgcnRsODcy
M2JlIG1vZHVsZSBwcm9ncmFtZWQgY29ycmVjdCBlZnVzZSBjb250ZW50LCBzbyBpdA0KPiA+IHdv
cmtzIHByb3Blcmx5IHdpdGggYW50X3NlbD0wLCBhbmQgcXVpcmsgaXNuJ3QgcmVxdWlyZWQgZm9y
IHlvdXINCj4gPiBtYWNoaW5lLg0KPiA+DQo+ID4+wqDCoMKgdy1kLW4gYW50X3NlbD0wOiAtMTQu
MDAgZEJtLMKgwqA2OS41IE1icHMgLT4gZ29vZA0KPiA+PsKgwqDCoHctZC1uIGFudF9zZWw9MTog
LTEwLjAwIGRCbSzCoMKgNDEuMSBNYnBzIC0+IGdvb2QNCj4gPj7CoMKgwqB3LWQtbiBhbnRfc2Vs
PTI6IC00NC4wMCBkQm0swqDCoMKgNjA3IGticHMgLT4gYmFkDQo+ID4+DQo+ID4+wqDCoMKgdjQu
MTYgYW50X3NlbD0wOiAtMTIuMDAgZEJtLMKgwqA2My4wIE1icHMgLT4gZ29vZA0KPiA+PsKgwqDC
oHY0LjE2IGFudF9zZWw9MTogLSA4LjAwIGRCbSzCoMKgNjkuMCBNYnBzIC0+IGdvb2QNCj4gPj7C
oMKgwqB2NC4xNiBhbnRfc2VsPTI6IC01MC4wMCBkQm0swqDCoMKgMjI0IGticHMgLT4gYmFkDQo+
ID4+DQo+ID4+wqDCoMKgdjQuMTUgYW50X3NlbD0wOiAtIDguMDAgZEJtLMKgwqAzMy4wIE1icHMg
LT4gZ29vZA0KPiA+PsKgwqDCoHY0LjE1IGFudF9zZWw9MTogLTEwLjAwIGRCbSzCoMKgMzguMSBN
YnBzIC0+IGdvb2QNCj4gPj7CoMKgwqB2NC4xNSBhbnRfc2VsPTI6IC00OC4wMCBkQm0swqDCoMKg
MjA2IGticHMgLT4gYmFkDQo+ID4+DQo+ID4NCj4gPiBXaXRoIHlvdXIgcmVzdWx0cywgdGhlIGVm
dXNlIGNvbnRlbnQgaXMgcHJvZ3JhbW1lZCBhcyBvbmUgb3IgdHdvIGFudGVubmENCj4gPiBvbiBB
VVggcGF0aC4NCj4gPg0KPsKgDQo+IFdpdGggdjQuMTEgSSBoYWQgZ29vZCBwZXJmb3JtYW5jZSBy
ZXN1bHRzIG9uIHRoaXMgdmVyeSBzYW1lIG1hY2hpbmUNCj4gKHRodXMgc2FtZSBlZnVzZSBjb250
ZW50cykgb25seSB3aGVuIHBhc3NpbmcgYW50X3NlbD0xLCBzbyB0aGVyZSBoYXMNCj4gdG8gYmUg
c29tZSBjaGFuZ2Ugb24gdGhlIGNvZGUgdGhhdCBwYXJzZXMgdGhlIGVmdXNlIGNvbnRlbnRzIGFu
ZA0KPiBkZWNpZGVzIHdoaWNoIGFudGVubmEgd2lsbCBiZSB1c2VkLg0KPsKgDQoNClNpbmNlIGJ0
Y29leCBjb250cm9sIFRETUEgcGFyYW1ldGVycyBmb3IgV2lGaSBhbmQgQlQsIGFudGVubmEgcmVs
YXRlZCBjb2RlDQppcyBwdXQgaW4gYnRjb2V4LiBUaGF0J3Mgd2h5IGFudF9zZWwgaXMgdXNlZCBi
eSBidGNvZXguDQpJbiB2NC4xMiwgd2UgdXBncmFkZWQgYnRjb2V4IGFuZCBmaXJtd2FyZSBpbiBv
cmRlciB0byB5aWVsZCBiZXR0ZXIgYmFsYW5jZQ0KYmV0d2VlbiBXaUZpIGFuZCBCVCwgbWVhbndo
aWxlIGNvZGUgZmxvdyBoYWQgc29tZSBjaGFuZ2VzLiBTbywgdGhlIHNpbmdsZcKgDQpjb21taXQg
YWY4YTQxY2NjZjhmICgicnRsd2lmaTogY2xlYW51cCA4NzIzYmUgYW50X3NlbCBkZWZpbml0aW9u
Iikgd29uJ3TCoA0Kd29yayBvbiB2NC4xMS4gSW4gb3RoZXIgd29yZHMsIGlmIHlvdSB3YW50IHY0
LjExIHdvcmsgcHJvcGVybHksIHlvdSBuZWVkIHRvDQphcHBseSBhbGwgY2hhbmdlcyBvZiBidGNv
ZXguDQoNCg0KVGhlIHBhcnNlciBvZiBlZnVzZSBpc24ndCBjaGFuZ2VkLCBhbmQgSSB0aGluayB0
aGUgcmVhc29uIHdoeSB2NC4xMSBuZWVkcw0KYW50X3NlbD0xIGlzIHRoZSBzYW1lIGFzIGFib3Zl
Lg0KDQpSZWdhcmRzDQpQSw0KDQo=

2018-05-01 22:46:34

by João Paulo Rechi Vita

[permalink] [raw]
Subject: [RFC PATCH 1/3] rtlwifi: btcoex: Don't init antenna position to main port

This partially reverts commit 40d9dd4f1c5dcd0d4a2a1f0efcd225c9c4b36d6f,
which does not only remove global variables from btcoex, as described on
its commit message, but also does a few other things -- in particular,
setting the default antenna position to BTC_ANTENNA_AT_MAIN_PORT.

This drastically affects the upload performance and signal strenght on
the HP 240 G4 laptop, as shown by the results bellow:

Without this change:

$ sudo iw dev wlp2s0 scan | grep -B3 JJ | grep signal
signal: -42.00 dBm
$ iperf3 -c 192.168.1.254
Connecting to host 192.168.1.254, port 5201
[ 4] local 192.168.1.253 port 39678 connected to 192.168.1.254 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 735 KBytes 6.02 Mbits/sec 1 1.41 KBytes
[ 4] 1.00-2.00 sec 274 KBytes 2.25 Mbits/sec 1 1.41 KBytes
[ 4] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 4] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 4] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 1 28.3 KBytes
[ 4] 5.00-6.00 sec 423 KBytes 3.47 Mbits/sec 3 41.0 KBytes
[ 4] 6.00-7.00 sec 840 KBytes 6.88 Mbits/sec 0 58.0 KBytes
[ 4] 7.00-8.00 sec 830 KBytes 6.79 Mbits/sec 1 1.41 KBytes
[ 4] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 4] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 3.03 MBytes 2.54 Mbits/sec 7 sender
[ 4] 0.00-10.00 sec 2.88 MBytes 2.41 Mbits/sec receiver

iperf Done.

With this change:

$ sudo iw dev wlp2s0 scan | grep -B3 JJ | grep signal
signal: -14.00 dBm
$ iperf3 -c 192.168.1.254
Connecting to host 192.168.1.254, port 5201
[ 4] local 192.168.1.253 port 59380 connected to 192.168.1.254 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 4.63 MBytes 38.8 Mbits/sec 0 194 KBytes
[ 4] 1.00-2.00 sec 4.58 MBytes 38.4 Mbits/sec 0 273 KBytes
[ 4] 2.00-3.00 sec 5.05 MBytes 42.3 Mbits/sec 0 332 KBytes
[ 4] 3.00-4.00 sec 4.98 MBytes 41.8 Mbits/sec 0 393 KBytes
[ 4] 4.00-5.00 sec 4.76 MBytes 39.9 Mbits/sec 0 434 KBytes
[ 4] 5.00-6.00 sec 4.85 MBytes 40.7 Mbits/sec 0 434 KBytes
[ 4] 6.00-7.00 sec 3.96 MBytes 33.2 Mbits/sec 0 464 KBytes
[ 4] 7.00-8.00 sec 4.74 MBytes 39.8 Mbits/sec 0 481 KBytes
[ 4] 8.00-9.00 sec 4.22 MBytes 35.4 Mbits/sec 0 508 KBytes
[ 4] 9.00-10.00 sec 4.09 MBytes 34.3 Mbits/sec 0 564 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 45.9 MBytes 38.5 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 45.0 MBytes 37.7 Mbits/sec receiver

iperf Done.

Signed-off-by: João Paulo Rechi Vita <[email protected]>
---
drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
index b026e80940a4..86182b917c92 100644
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
@@ -1388,9 +1388,6 @@ bool exhalbtc_bind_bt_coex_withadapter(void *adapter)
ant_num = rtl_get_hwpg_ant_num(rtlpriv);
exhalbtc_set_ant_num(rtlpriv, BT_COEX_ANT_TYPE_PG, ant_num);

- /* set default antenna position to main port */
- btcoexist->board_info.btdm_ant_pos = BTC_ANTENNA_AT_MAIN_PORT;
-
single_ant_path = rtl_get_hwpg_single_ant_path(rtlpriv);
exhalbtc_set_single_ant_path(btcoexist, single_ant_path);

--
2.17.0

2018-05-02 05:44:59

by Ping-Ke Shih

[permalink] [raw]
Subject: RE: RTL8723BE performance regression

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSm/Do28gUGF1bG8gUmVj
aGkgVml0YSBbbWFpbHRvOmpwcnZpdGFAZ21haWwuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIE1h
eSAwMiwgMjAxOCA2OjQxIEFNDQo+IFRvOiBMYXJyeSBGaW5nZXINCj4gQ2M6IFN0ZXZlIGRlUm9z
aWVyOyDojorlvaXlrqM7IFBrc2hpaDsgQmlybWluZyBDaGl1OyBTaGFvZnU7IFN0ZXZlbiBUaW5n
OyBDaGFvbWluZ19MaTsgS2FsbGUgVmFsbzsNCj4gbGludXgtd2lyZWxlc3M7IE5ldHdvcmsgRGV2
ZWxvcG1lbnQ7IExLTUw7IERhbmllbCBEcmFrZTsgSm/Do28gUGF1bG8gUmVjaGkgVml0YTsgbGlu
dXhAZW5kbGVzc20uY29tDQo+IFN1YmplY3Q6IFJlOiBSVEw4NzIzQkUgcGVyZm9ybWFuY2UgcmVn
cmVzc2lvbg0KPiANCj4gT24gVHVlLCBBcHIgMywgMjAxOCBhdCA3OjUxIFBNLCBMYXJyeSBGaW5n
ZXIgPExhcnJ5LkZpbmdlckBsd2Zpbmdlci5uZXQ+IHdyb3RlOg0KPiA+IE9uIDA0LzAzLzIwMTgg
MDk6MzcgUE0sIEpvw6NvIFBhdWxvIFJlY2hpIFZpdGEgd3JvdGU6DQo+ID4+DQo+ID4+IE9uIFR1
ZSwgQXByIDMsIDIwMTggYXQgNzoyOCBQTSwgTGFycnkgRmluZ2VyIDxMYXJyeS5GaW5nZXJAbHdm
aW5nZXIubmV0Pg0KPiA+PiB3cm90ZToNCj4gPj4NCj4gPj4gKC4uLikNCj4gPj4NCj4gPj4+IEFz
IHRoZSBhbnRlbm5hIHNlbGVjdGlvbiBjb2RlIGNoYW5nZXMgYWZmZWN0ZWQgeW91ciBmaXJzdCBi
aXNlY3Rpb24sIGRvDQo+ID4+PiB5b3UNCj4gPj4+IGhhdmUgb25lIG9mIHRob3NlIEhQIGxhcHRv
cHMgd2l0aCBvbmx5IG9uZSBhbnRlbm5hIGFuZCB0aGUgaW5jb3JyZWN0DQo+ID4+PiBjb2RpbmcN
Cj4gPj4+IGluIHRoZSBGVVNFPw0KPiA+Pg0KPiA+Pg0KPiA+PiBZZXMsIHRoYXQgaXMgd2h5IEkn
dmUgYmVlbiBwYXNzaW5nIGFudF9zZWw9MSBkdXJpbmcgbXkgdGVzdHMgLS0gdGhpcw0KPiA+PiB3
YXMgbmVlZGVkIHRvIGFjaGlldmUgYSBnb29kIHBlcmZvcm1hbmNlIGluIHRoZSBwYXN0LCBiZWZv
cmUgdGhpcw0KPiA+PiByZWdyZXNzaW9uLiBJJ3ZlIGFsc28gb3BlbmVkIHRoZSBsYXB0b3AgY2hh
c3NpcyBhbmQgY29uZmlybWVkIHRoZQ0KPiA+PiBhbnRlbm5hIGNhYmxlIGlzIHBsdWdnZWQgdG8g
dGhlIGNvbm5lY3RvciBsYWJlbGVkIHdpdGggIjEiIG9uIHRoZQ0KPiA+PiBjYXJkLg0KPiA+Pg0K
PiA+Pj4gSWYgc28sIHBsZWFzZSBtYWtlIHN1cmUgdGhhdCB5b3Ugc3RpbGwgaGF2ZSB0aGUgc2Ft
ZSBzaWduYWwNCj4gPj4+IHN0cmVuZ3RoIGZvciBnb29kIGFuZCBiYWQgY2FzZXMuIEkgaGF2ZSB0
cmllZCB0byBrZWVwIHRoZSBkcml2ZXIgYW5kIHRoZQ0KPiA+Pj4gYnRjb2V4IGNvZGUgaW4gc3lu
YywgYnV0IHRoZXJlIG1heSBiZSBzb21lIGNvbWJpbmF0aW9ucyBvZiBhbnRlbm5hDQo+ID4+PiBj
b25maWd1cmF0aW9uIGFuZCBGVVNFIGNvbnRlbnRzIHRoYXQgY2F1c2UgdGhlIGNvZGUgdG8gZmFp
bC4NCj4gPj4+DQo+ID4+DQo+ID4+IFdoYXQgaXMgdGhlIHJlY29tbWVuZGVkIHdheSB0byBtb25p
dG9yIHRoZSBzaWduYWwgc3RyZW5ndGg/DQo+ID4NCj4gPg0KPiA+IFRoZSBidGNvZXggY29kZSBp
cyBkZXZlbG9wZWQgZm9yIG11bHRpcGxlIHBsYXRmb3JtcyBieSBhIGRpZmZlcmVudCBncm91cA0K
PiA+IHRoYW4gdGhlIExpbnV4IGRyaXZlci4gSSB0aGluayB0aGV5IG1hZGUgYSBjaGFuZ2UgdGhh
dCBjYXVzZWQgYW50X3NlbCB0bw0KPiA+IHN3aXRjaCBmcm9tIDEgdG8gMi4gQXQgbGVhc3QgbnVt
ZXJvdXMgY29tbWVudHMgYXQNCj4gPiBnaXRodWIuY29tL2x3ZmluZ2VyL3J0bHdpZmlfbmV3IGNs
YWltZWQgdGhleSBuZWVkZWQgdG8gbWFrZSB0aGF0IGNoYW5nZS4NCj4gPg0KPiA+IE1oeSByZWNv
bW1lbmRlZCBtZXRob2QgaXMgdG8gdmVyaWZ5IHRoZSB3aWZpIGRldmljZSBuYW1lIHdpdGggIml3
IGRldiIuIFRoZW4NCj4gPiB1c2luZyB0aGF0IGRldmljZQ0KPiA+DQo+ID4gc3VkbyBpdyBkZXYg
PGRldl9uYW1lPiBzY2FuIHwgZWdyZXAgIlNTSUR8c2lnbmFsIg0KPiA+DQo+IA0KPiBJIGhhdmUg
Y29uZmlybWVkIHRoYXQgdGhlIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gaXMgaW5kZWVkIHRpZWQg
dG8NCj4gc2lnbmFsIHN0cmVuZ3RoOiBvbiB0aGUgZ29vZCBjYXNlcyBzaWduYWwgd2FzIGJldHdl
ZW4gLTE2IGFuZCAtOCBkQm0sDQo+IHdoZXJlYXMgaW4gYmFkIGNhc2VzIHNpZ25hbCB3YXMgYWx3
YXlzIGJldHdlZW4gLTUwIHRvIC0gNDAgZEJtLiBJJ3ZlDQo+IGFsc28gc3dpdGNoZWQgdG8gdGVz
dGluZyBiYW5kd2lkdGggaW4gY29udHJvbGxlZCBMQU4gZW52aXJvbm1lbnQgdXNpbmcNCj4gaXBl
cmYzLCBhcyBzdWdnZXN0ZWQgYnkgU3RldmUgZGVSb3NpZXIsIHdpdGggdGhlIERVVCBiZWluZyB0
aGUgb25seQ0KPiBtYWNoaW5lIGNvbm5lY3RlZCB0byB0aGUgMi40IEdIeiByYWRpbyBhbmQgdGhl
IG1hY2hpbmUgcnVubmluZyB0aGUNCj4gaXBlcmYzIHNlcnZlciBjb25uZWN0ZWQgdmlhIGV0aGVy
bmV0Lg0KPiANCg0KV2UgaGF2ZSBuZXcgZXhwZXJpbWVudGFsIHJlc3VsdHMgaW4gY29tbWl0IGFm
OGE0MWNjY2Y4ZjQ2ICgicnRsd2lmaTogY2xlYW51cCANCjg3MjNiZSBhbnRfc2VsIGRlZmluaXRp
b24iKS4gWW91IGNhbiB1c2UgdGhlIGFib3ZlIGNvbW1pdCBhbmQgZG8gdGhlIHNhbWUgDQpleHBl
cmltZW50cyAod2l0aCBhbnRfc2VsPTAsIDEgYW5kIDIpIGluIHlvdXIgc2lkZSwgYW5kIHRoZW4g
c2hhcmUgeW91ciByZXN1bHRzLg0KU2luY2UgcGVyZm9ybWFuY2UgaXMgdGllZCB0byBzaWduYWwg
c3RyZW5ndGgsIHlvdSBjYW4gb25seSBzaGFyZSBzaWduYWwgc3RyZW5ndGguDQoNClJlZ2FyZHMN
ClBLDQoNCg==