rtl8723bs poor download performance

Started by pietrushnic, February 18, 2016, 02:20:34 PM

Previous topic - Next topic

pietrushnic

Hi all,
I'm trying to make rtl8723bs work with custom A20 board very similar to A20-OLinuXino-MICRO. I made all customization in kernel and wifi seems to work ok, but I have terrible download performance:


iperf3 -c 192.168.0.105 -R -t 30 -i 5

[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-32.13  sec   112 MBytes  29.1 Mbits/sec    0             sender
[  5]   0.00-32.13  sec   111 MBytes  29.0 Mbits/sec                  receiver


The same configuration have acceptable upload:


iperf3 -c 192.168.0.105 -t 30 -i 5

[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-31.98  sec   393 KBytes   101 Kbits/sec    3             sender
[  5]   0.00-31.98  sec   364 KBytes  93.3 Kbits/sec                  receiver


iwconfig signal strength:


Link Quality=55/100  Signal level=-67 dBm  Noise level=0 dBm


Module is connected using SDC3, since I need video engine support I used `sunxi-3.4` and integrated vendor driver which seems to be similar to rtl8723as.

My system is build using buildroot. I tried to use various profilers but I'm not familiar with those kind of tools to use them like a pro.

Perf show:


    26.75%   iperf3  [kernel.kallsyms]   [k] _raw_spin_unlock_irqrestore
     5.64%   iperf3  [kernel.kallsyms]   [k] sub_preempt_count         
     5.22%   iperf3  [kernel.kallsyms]   [k] do_select                 
     5.02%   iperf3  [kernel.kallsyms]   [k] add_preempt_count         
     4.83%   iperf3  [kernel.kallsyms]   [k] ktime_get_ts   


Not sure if spending so much time in _raw_spin_unlock_irqrestore is ok. I also tried trace-cmd, but not sure how to interpret results, also had problem with using function plugin - it hangs system.

Anyone faced similar issue ?
Have you got ideas how to debug this problem ?