[BUG]2.4G VHT40 TX吞吐量较低

问题点

机型 tx rx
DUT 150 300
REF 300 300

高通分析

comment 1

Comment
Created By: Zhaoming Shu (1/1/2020 6:20 PM)
前面回复有点错误,“如果关了后tput很好,那就找硬件去检查”应该是”如果关了后tput不好“, 抱歉
Created By: Zhaoming Shu (1/1/2020 6:18 PM)
如果关掉RTS后如果性能不好,说明是硬件性能有问题。如果VHT40发送是正常的,说明是AP 的CTS没正确回复。也就是说应该AP只在一个20M上回复了CTS,导致DUT只使用VHT20. 你到屏蔽房试试。
Created By: liu qi (12/31/2019 10:05 PM)
我关掉RTS后,vht40 吞吐量 tx达到了300Mbps,那现在让硬件去排查?
Created By: Zhaoming Shu (12/31/2019 2:00 AM)
好像RTS没关掉。再加一个配置
RTSThreshold=1048576
Created By: Zhaoming Shu (12/29/2019 11:03 PM)
请把sniffer和pktlog一起提供看一下,谢谢
Created By: liu qi (12/29/2019 10:52 PM)
我关闭了gEnableRTSProfile=0 吞吐量仍在130左右
Created By: Zhaoming Shu (12/29/2019 10:14 PM)
从你提供的pktlog看,SW是使用HT40去尝试发包的,但最终返回的结果是使用的HT20. 这有两个可能,1. AP只在一个20M上返回了CTS 2. VHT40 HW 性能不太好。请试试关了RTS/CTS机制,看看速率是不是正常的,如果关了后tput很好,那就找硬件去检查。谢谢
Created By: liu qi (12/26/2019 10:44 PM)
hi sir, 那个case是为了解决2。4G btc吞吐量低的问题,owner认为单2.4g 吞吐量本来就低所以才导致btc tput低,所以他也在同步解决这个问题
Created By: Zhaoming Shu (12/26/2019 10:23 PM)
你试试关了RTS/CTS机制看看。
gEnableRTSProfiles=0
Created By: liu qi (12/26/2019 4:55 PM)
如果是AP的问题,那为何在同一测试环境下对比机能够一直处于VHT40呢?
Created By: Zhaoming Shu (12/26/2019 3:03 AM)
HT40 tput还算是正常的。有问题的是VHT40, 从sniffer看,DUT开始VHT40速率还是400,RTS/CTS后会掉到VHT20速率。按照协议说明,11ac RTS/CTS支持动态频宽模式,手机会在两个20M channel上分别发出RTS, 如果都能收到CTS,则使用VHT40, 如果只有一个CTS回复,就在该20M 上发送VHT20报文。sniffer只能抓到主channel上的RTS/CTS, 应该是AP没有全部回复引起的。
Created By: liu qi (12/26/2019 2:43 AM)
关闭vht40后测试
link speed 300Mbps , throughtput 220M
Created By: Zhaoming Shu (12/25/2019 10:45 PM)
关掉VHT40使用HT40试试呢。在ini里面配置
gEnableVhtFor24GHzBand=0

comment 2

Comment
Created By: zichao zhang (12/24/2019 2:11 AM) about.html 文件上传附件
Created By: Zhaoming Shu (12/24/2019 12:18 AM) 请提供一下Meta build ID 和FW build id, pktlog解析好像有问题,可能是版本不太匹配。
Created By: Zhaoming Shu (12/24/2019 12:02 AM) Last Modified By: Zhaoming Shu (12/24/2019 12:02 AM)** 53 2019-12-24 02:57:45.291141 10.0.0.3 10.0.0.5 TCP 150 400,400 58 0 43012 → 5001 [PSH, ACK] Seq=1 Ack=1 Win=172 Len=24 TSval=1773109487 TSecr=1437435411 55 2019-12-24 02:57:45.291739 XiaomiCo_2b:74:fc (21:f4:78:2b:74:fc) (TA) Netgear_7c:e5:74 (a0:04:60:7c:e5:74) (RA) 802.11 44 1 Request-to-send, Flags=……..C 56 2019-12-24 02:57:45.293001 XiaomiCo_2b:74:fc (20:f4:78:2b:74:fc) (RA) 802.11 38 1 Clear-to-send, Flags=……..C 57 2019-12-24 02:57:45.293041 10.0.0.3 10.0.0.5 TCP 3112 104,104 59 0 43012 → 5001 [ACK] Seq=1473 Ack=1 Win=172 Len=1448 TSval=1773109488 TSecr=1437435411
Created By: Zhaoming Shu (12/23/2019 11:44 PM) 从log看,DUT回退到VHT20了,很少时候是VHT40的
Created By: zichao zhang (12/23/2019 8:38 PM) 新log已经上传附件
Created By: Zhaoming Shu (12/23/2019 2:57 AM) usage: pktdump [-i interface] [-o output] [-d interval] [-t time] [-c] -c option which will generate a full pktlog data file example: pktdump -t 300 -o /data/wifi/ -c //capture 300sec pktlog and save to /data/wifi/pktlog folder, if there is -c option, it will also generate a full pkt file
Created By: Zhaoming Shu (12/23/2019 2:54 AM) PKTlog抓的有问题啊,看不到有任何数据报文。
Created By: liu qi (12/22/2019 11:30 PM) OK,我们先不需要纠结这个,关于对比机的我会和小米在确认一下! 现在的问题点在于我们J6的项目支持2*2 mimo,并且RX的吞吐量能达到300mbps,tx却只有140/150,这个很明显是有问题的!

sniffer log

硬件跟踪

  1. 检查ht性能
  2. 降低功率值

但是均不奏效,硬件说硬件性能没有问题

软件跟踪

一开始为了排除是不是只有vht40才会出现吞吐量偏低的情况,就关闭了vht40,下面的参数控制:

gChannelBondingMode24GHz=1
gEnableVhtFor24GHzBand=0

这样测试的结果linkspeed在300Mbps,吞吐量在220M,那就说明只有vht40有问题。

Root Cause

在查看Sniffer时,发现出现了大量的CRC error的包,且很多重传包。DUT开始VHT40速率还是400, RTS/CTS后会掉到VHT20速率。按照协议说明,11ac RTS/CTS支持动态频宽模式,手机会在两个20M channel上分别发出RTS, 如果都能收到CTS,则使用VHT40, 如果只有一个CTS回复,就在该20M 上发送VHT20报文。sniffer只能抓到主channel上的RTS/CTS, 应该是AP没有全部回复引起的。

所以我们试了将RTS/CTS关闭,在纯净环境下测试,发现tx的吞吐量达到了300M,后来进一步排查我们把RTS/CTS打开,但是将RTSThreshold 由原来的2347改为1048576,也好了。

RTSThreshold

当需要发送的包的大小达到这个参数所设定的值的时候,发送RTS,之前将这个值设置的太小,所以在VHT40上跑吞吐量会出现CPU频繁的接发RTS/CTS,这样会导致一个吞吐量的下降。而现在将这个值调为最大,上层将数据包发送的驱动层,通过帧聚合,将小包聚合成大包一起发送,可以有效的减轻CPU负担,并提升网口的吞吐。

解决方案

在WCNSS_qcom_cfg.ini文件中,修改如下的参数:

RTSThreshold=1048576

gEnableVhtFor24GHzBand、gChannelBondingMode24GHz和RTSThreshold对linkspeed和throughput的影响

剑气纵横三万里

“为什么要努力?” “想去的地方很远,想要的东西很贵,喜欢的人很优秀,父母的白发,朋友的约定,周围人的嘲笑,以及,天生傲骨。”

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐

暂无内容!