cpu单核负载导致5G跑不满,mt7621+mt715 5G wifi吞吐量低
问题描述
开发一款mt762+7615产品,发现5G tx与rx只有500多M,同时跑2G+5G也是只有600多M,达不到市场产品性能。后来发现是cpu单核负载满负荷问题造成的。
解决方法
使用cat /proc/interrupts查看linux irq发现1e100000.ethernet(以太网驱动)与ra0(mt7615驱动)在同一cpu中(CPU0),造成在跑吞吐量时cpu0满负荷,但是cpu1/cpu2/cpu3空闲
root@GL-MT1300:/# cat proc/interrupts
CPU0 CPU1 CPU2 CPU3
8: 104178 104158 104153 104144 MIPS GIC Local 1 timer
9: 52364 0 0 0 MIPS GIC 63 IPI call
10: 0 17343 0 0 MIPS GIC 64 IPI call
11: 0 0 47420 0 MIPS GIC 65 IPI call
12: 0 0 0 17015 MIPS GIC 66 IPI call
13: 2289283 0 0 0 MIPS GIC 67 IPI resched
14: 0 2353869 0 0 MIPS GIC 68 IPI resched
15: 0 0 180709 0 MIPS GIC 69 IPI resched
16: 0 0 0 331585 MIPS GIC 70 IPI resched
19: 5281 0 0 0 MIPS GIC 33 ttyS0
21: 576 0 0 0 MIPS GIC 27 1e130000.sdhci
22: 593 0 0 0 MIPS GIC 29 xhci-hcd:usb1
23: 1405 0 0 0 MIPS GIC 10 1e100000.ethernet
24: 1 0 0 0 MIPS GIC 30 gsw
25: 51606 0 0 0 MIPS GIC 11 ra0
ERR: 1
由上面可以知道1e100000.ethernet为23,输入命令
root@GL-MT1300:/# echo 4 > /proc/irq/23/smp_affinity
将1e100000.ethernet的irq放到cpu2中处理。
发现跑吞吐量时,2g+5G同时跑可达850M,单跑5G也可以到600M多,吞吐量数据正常。
辅助验证工具
top命令可以显示各个cpu负载,但是要在make menuconfig时选上相应的支持
点击链接加入群聊四群:722808830
点击链接加入群聊三群:751529538(已满)
点击链接加入群聊二群:376877156(已满)
点击链接加入群聊一群:622891808(已满)
饿了么红包
本站附件分享,如果附件失效,可以去找找看
于2022-10-16发布