嵌入式开发者社区
标题:
cpsw发udp小包时timeout且无法恢复(4.4.19内核)
[打印本页]
作者:
Andee
时间:
2019-8-28 08:52
标题:
cpsw发udp小包时timeout且无法恢复(4.4.19内核)
1. 最近在SDK3.01的内核(4.4.19)上遇到一个问题,使用iperf发udp小包,一段时间后会出现“NETDEV WATCHDOG: eth0 (cpsw): transmit queue 0 timed out”这样的log,此时网卡阻塞了,对外ping不通,并且没有自动恢复。发送udp小包的命令如下:
iperf -u -c 192.168.100.111 -p12345 -i1 -t9999
-l100 -b70m
-P2
运行一会后会出现如下log:
root@am57xx-evm:~# [ 339.011780] ------------[ cut here ]------------
[ 339.016465] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:306 dev_watchdog+0x284/0x290()
[ 339.024983] NETDEV WATCHDOG: eth0 (cpsw): transmit queue 0 timed out
2. 我对比4.9.65的kernel代码发现,4.4.19的代码在cpsw网卡发送超时后没有重新唤醒发送队列。于是我参照4.9.65的做法,把唤醒代码加到4.4.19上,但是发现cpsw的timeout根本就没有被调用到。我在cpsw_ndo_tx_timeout里面添加打印log,没有打印出来。
以上两个问题,有遇到类似经历的,帮忙回复一下。感谢!
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4