rsi_91x: Low bandwidth: sends ~100 Kbits/sec, receives ~1.5 Mbits/sec

Alexey Brodkin Alexey.Brodkin at synopsys.com
Fri Dec 15 05:21:34 PST 2017


Hi Prameela,

On Fri, 2017-12-15 at 18:14 +0530, Prameela Rani Garnepudi wrote:
> Hi Alexey, 
> 
> 
> On Friday 15 December 2017 04:50 PM, Alexey Brodkin wrote: 
> > Hi Prameela, 
> > 
> > On Fri, 2017-12-15 at 11:13 +0530, Prameela Rani Garnepudi wrote: 
> >> Hi Alexey, 
> >> 
> >> Please use the attached patch to improve TX throughput. We will be 
> >> submitting this patch along with few others soon. 
> > Could you please specify which branch this patch is based on? 
> > I tried to apply on 4.14.5 (whatever is latests in "linux-4.14.y") 
> > but first 3 hunks failed to apply. 
> It is based on 4.14.0-rc7+ 
> > 
> > Maybe there're other dependencies? 
> > 
> > Also a couple of questions about this patch. 
> > Even though I'm not a networking/Wi-Fi expert of any kind but just 
> > looking at your changes: 
> > 
> > 1. I assume for upstreaming that patch will be split in 5 seperate patches 
> >    each addressing its own item instead of doing all at once, right? 
> > 
> > 2. The only obvious change that might help me with bandwidth is increase 
> >    of a number of aggregated Tx frames. But bumping from 6 to 8 doesn't look 
> >    as a significant improvement. How that might bring Tx bandwidth at least to 
> >    what I see on Rx, i.e. make things 10 times faster? 
> 
> The significant change to improve performance is bootup parameters 
> update as below: 
> 
> diff --git a/drivers/net/wireless/rsi/rsi_boot_params.h 
> b/drivers/net/wireless/rsi/rsi_boot_params.h 
> index 238ee96..ad903b22 100644 
> --- a/drivers/net/wireless/rsi/rsi_boot_params.h 
> +++ b/drivers/net/wireless/rsi/rsi_boot_params.h 
> @@ -46,7 +46,8 @@ 
>         (((TA_PLL_M_VAL_20 + 1) * 40) / \ 
>          ((TA_PLL_N_VAL_20 + 1) * (TA_PLL_P_VAL_20 + 1))) 
>  #define VALID_20 \ 
> -       (WIFI_PLL960_CONFIGS | WIFI_AFEPLL_CONFIGS | 
> WIFI_SWITCH_CLK_CONFIGS) 
> +       (WIFI_TAPLL_CONFIGS | WIFI_PLL960_CONFIGS | WIFI_AFEPLL_CONFIGS | \ 
> +        WIFI_SWITCH_CLK_CONFIGS | BOOTUP_MODE_INFO | CRYSTAL_GOOD_TIME) 
>  #define UMAC_CLK_40BW   \ 
>         (((TA_PLL_M_VAL_40 + 1) * 40) / \ 
>          ((TA_PLL_N_VAL_40 + 1) * (TA_PLL_P_VAL_40 + 1))) 
> 

With this change alone I don't see any improvement, see iperf3 results before this change:
--------------------------->8-------------------------
Accepted connection from 10.42.1.85, port 33814
[  5] local 10.42.1.1 port 5201 connected to 10.42.1.85 port 33816
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   1.00-2.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   2.00-3.00   sec  14.1 KBytes   116 Kbits/sec                  
[  5]   3.00-4.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   4.00-5.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   5.00-6.00   sec  11.3 KBytes  92.7 Kbits/sec                  
[  5]   6.00-7.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   7.00-8.00   sec  11.3 KBytes  92.7 Kbits/sec                  
[  5]   8.00-9.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   9.00-10.00  sec  12.7 KBytes   104 Kbits/sec                  
[  5]  10.00-11.00  sec  12.7 KBytes   104 Kbits/sec                  
[  5]  11.00-12.00  sec  12.7 KBytes   104 Kbits/sec                  
[  5]  12.00-12.44  sec  5.66 KBytes   107 Kbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-12.44  sec   157 KBytes   103 Kbits/sec                  receiver

Accepted connection from 10.42.1.85, port 33818
[  5] local 10.42.1.1 port 5201 connected to 10.42.1.85 port 33820
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   296 KBytes  2.42 Mbits/sec    0   41.0 KBytes       
[  5]   1.00-2.00   sec   137 KBytes  1.12 Mbits/sec    0   46.7 KBytes       
[  5]   2.00-3.00   sec   127 KBytes  1.04 Mbits/sec    0   53.7 KBytes       
[  5]   3.00-4.00   sec   127 KBytes  1.04 Mbits/sec    0   62.2 KBytes       
[  5]   4.00-5.00   sec   191 KBytes  1.56 Mbits/sec    0   82.0 KBytes       
[  5]   5.00-6.00   sec   191 KBytes  1.56 Mbits/sec    0    113 KBytes       
[  5]   6.00-7.00   sec   573 KBytes  4.69 Mbits/sec    0    158 KBytes       
[  5]   7.00-8.00   sec  0.00 Bytes  0.00 bits/sec    0    187 KBytes       
[  5]   8.00-9.00   sec   445 KBytes  3.65 Mbits/sec    0    243 KBytes       
[  5]   9.00-10.00  sec   636 KBytes  5.22 Mbits/sec    0    298 KBytes       
[  5]  10.00-11.00  sec  0.00 Bytes  0.00 bits/sec    0    362 KBytes       
[  5]  11.00-12.00  sec  0.00 Bytes  0.00 bits/sec    0    399 KBytes       
[  5]  12.00-12.87  sec   827 KBytes  7.80 Mbits/sec    0    455 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-12.87  sec  3.47 MBytes  2.26 Mbits/sec    0             sender
--------------------------->8-------------------------

and right after:
--------------------------->8-------------------------
Accepted connection from 10.42.1.85, port 60582
[  5] local 10.42.1.1 port 5201 connected to 10.42.1.85 port 60584
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   1.00-2.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   2.00-3.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   3.00-4.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   4.00-5.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   5.00-6.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   6.00-7.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   7.00-8.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   8.00-9.00   sec  12.7 KBytes   104 Kbits/sec                  
[  5]   9.00-10.00  sec  12.7 KBytes   104 Kbits/sec                  
[  5]  10.00-11.00  sec  12.7 KBytes   104 Kbits/sec                  
[  5]  11.00-12.00  sec  14.1 KBytes   116 Kbits/sec                  
[  5]  12.00-12.51  sec  5.66 KBytes  90.5 Kbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-12.51  sec   160 KBytes   105 Kbits/sec                  receiver
-----------------------------------------------------------

Accepted connection from 10.42.1.85, port 60586
[  5] local 10.42.1.1 port 5201 connected to 10.42.1.85 port 60588
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   296 KBytes  2.42 Mbits/sec    0   42.4 KBytes       
[  5]   1.00-2.00   sec   137 KBytes  1.12 Mbits/sec    0   48.1 KBytes       
[  5]   2.00-3.00   sec   127 KBytes  1.04 Mbits/sec    0   53.7 KBytes       
[  5]   3.00-4.00   sec   127 KBytes  1.04 Mbits/sec    0   62.2 KBytes       
[  5]   4.00-5.00   sec   318 KBytes  2.61 Mbits/sec    0   80.6 KBytes       
[  5]   5.00-6.00   sec   255 KBytes  2.08 Mbits/sec    0    112 KBytes       
[  5]   6.00-7.00   sec   318 KBytes  2.61 Mbits/sec    0    153 KBytes       
[  5]   7.00-8.00   sec  0.00 Bytes  0.00 bits/sec    0    188 KBytes       
[  5]   8.00-9.00   sec   509 KBytes  4.17 Mbits/sec    0    233 KBytes       
[  5]   9.00-10.00  sec  0.00 Bytes  0.00 bits/sec    0    270 KBytes       
[  5]  10.00-11.00  sec   573 KBytes  4.69 Mbits/sec    0    345 KBytes       
[  5]  11.00-12.00  sec  0.00 Bytes  0.00 bits/sec    0    387 KBytes       
[  5]  12.00-12.66  sec   954 KBytes  11.8 Mbits/sec    0    414 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-12.66  sec  3.53 MBytes  2.34 Mbits/sec    0             sender
--------------------------->8-------------------------

Any ideas?
Does it really work for you (again I'm trying on top of linux-4.14.y)?

> > 
> > Also while at it I'm wondering why 5GHz mode didn't work for me even though 
> > "iw list" reports 5 GHz mode supported: 
> > ----------------------->8------------------ 
> > # iw list 
> > Wiphy phy0 
> > ... 
> >       Frequencies: 
> >            * 5180 MHz [36] (20.0 dBm) (no IR) 
> > 
> > # cat /etc/hostapd.conf 
> > interface=wlan0 
> > ctrl_interface=/var/run/hostapd 
> > ctrl_interface_group=0 
> > ssid=HSDK-AP 
> > hw_mode=a 
> > channel=36 
> > 
> > # hostapd -B /etc/hostapd.conf 
> > Starting hostapd: Configuration file: /etc/hostapd.conf 
> > rsi_91x: ===> Interface UP <=== 
> > rfkill: Cannot open RFKILL contrIPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready 
> > ol device 
> > wlan0: IEEE 802.11 Configured channel (36) not found from the channel list of current mode (2) IEEE 802.11a 
> > wlan0: IEEE 802.11 Hardware does not support configured channel 
> > Could not select hw_mode and channel. (-3) 
> > wlan0: interface state UNINITIALIZED->DISABLED 
> > wlan0: AP-DISABLED 
> > wlan0: Unable to setup interface. 
> > wlan0: interface state DISABLED->DISABLED 
> > wlan0: AP-DISABLED 
> > hostapd_free_hapd_data: Interface wlan0 wasn't started 
> > ----------------------->8------------------ 
> It should work without any issues. I hope you have dual band module with 
> you. Please confirm once. 

1. How may I tell the module supports 5GHz?
2. If it doesn't support 5GHz why iw reports this support?

-Alexey


More information about the linux-snps-arc mailing list