This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM5726:netdev 安全装置:eth0 (cpsw):发送队列0超时

Guru**** 2539500 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/977444/am5726-netdev-watchdog-eth0-cpsw-transmit-queue-0-timed-out

器件型号:AM5726

大家好、
我希望您能帮助我了解问题并解决这个问题。

首先、我正在运行的 SDK 和内核版本:

SDK 03.01.00.06
具有 RT 的 Linux 支持 Linux 4.4.4.19-rt25 SMP 优先于 RT。

我已经看到了有关该主题的其他主题、但其中任何一个主题都显示了问题的真正原因或引发该问题的原因。 有时以太网端口因(NETDEV 看门狗)消息而停止、如下所示:

[1568.403944] NOHZ:local_softirq_pending 80
[1574.143709] NOHZ:local_softirq_pending 80
[1581.853441] NOHZ:local_tirq_pending 80 [1597.1437019]
NOHZ:local_softirq_pending 80 [15880]_rtirtirq_r80][NOtirt_rtirq_rtirq_r80]
[20_rtirq_rtirq_rtirt_r80][20_rtirq_rtirt_rtirt_rtirt_r80][158780][NOt_rtirt_rtirq_rtirt_rtirt_rtirq_rtirt_r80][158780][20_rtirt_rtirt_rtirt_r80][150780][NOt_rtirt_




local_softirq_pending 80
[1921.951512]------ [在此处剪切]-----
[1921.998844]警告:CPU:0 PID:4 at net/sched/sch_generic.c:306 dev_watchdog+0x26c/0x278 ()
[1922.007324] NETDEV watchdev watchdev:eth0 (cpsw):发送队列0超时
[1922.013709]链接的模块: CBC jitterentropy_rng drbg rpmsg_proto virtio_rpmsg_bus pru_rcryprouss_intc SHA512_generic SHA1_arm SHA1_generic omap_ace_driver SHA1_arm_neeon sha1_arm pruss dt_sham omap_wsofss_des omap_teap_teent_dc (vaporp) vapp
控制模块:24_remote_remote_vp (vp 控制:vp 控制器:vp 控制器 o 4.4.4.19-rt25-gf572d285f0 #1
[1922.04369]硬件名称:通用 DRA74X (平展器件树)
[1922.04364]背板:
[1922.043704][ ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
[1922.043716] r7:c0501bbc R6:20030113 R5:00000000 R4:c0889284
[ 1922.043728][ ](show_stack)从[ ](dump_stack+0x8c/0xa0)
[ 1922.043739][ ](dump_stack)从[ ](warn_slespath_common+0x88/b8)
[1922.043750] r7:c0501bbc R6:00000132 R5:00000009 R4:ee8a1e00
[1922.043759][ ](warn_slowpath_common)、来自[ ](warn_slespath_fmt+0x38/0x40)
[1922.043771] r8:ee31f000 r7:00000001 r6:c0852580 r5:ee062000 r4:c07c17c8
[1922.043782][ ](warn_slowpath_fmt)、来自[ ](DEV_WATCHDOGER+0x26c/0x278)
[ 1922.043788] R3:ee062000 R2:c07c17c8
[ 1922.043792] R4:00000000
[ 1922.043803][ ](DEV_Watchdog)从[ ](call_timer_fn+0x30/0xa0)
[ 1922.043816] r10:c0501950 r9:ee062000 r8:00000200 r7:c0501950 r6:00000000 r5:eed54580
[ 1922.043820] r4:ffe000
[ 1922.043829][ ](call_timer_fn)、来自[ ](run_timer_softirq+0x1b0/0x23c)
[1922.043840] r7:00000000 R6:00000000 R5:e54580 R4:e0622bc
[1922.043851][ ](run_timer_softirq)、来自[ ](do_curry_softirqs+0x1b8/0x254)
[ 1922.043863] R10:00000001 R9:ee8a1ed0 R8:00000000 r7:04208140 R6:ee8a0000 R5:00000004
[1922.043867] R4:c084b2b0
[1922.043875] ](do _curry_softirq)、从[ ](run_ksoftirqd+0x34/0x64)
[1922.043887] R10:00000000 R9:00000000 R8:ffe000 r7:c0864630 R6:00000001 R5:ee843bc0
[1922.043891] R4:ffe000
[1922.043901][ ](run_ksoftirqd)、来自[ ](smpboot_thread_fn+0x164/0x2b8)
[ 1922.043907] R5:ee843bc0 R4:ee8a0000
[ 1922.043915][ ](smpboot_thread_fn)、来自[ ](kthread+0xe4/0xFC)
[ 1922.043927] R10:00000000 R9:00000000 R8:00000000 r7:c005108c R6:ee843bc0 R5:ee843c40
[ 1922.043932] R4:00000000 R3:ee8915c0
[ 1922.043941][ ](kthread)、来自[ ](RET_FAND_FANK+0x14/0x24)
[1922.043950] r7:00000000 R6:00000000 R5:c004dd40 R4:ee843c40
[1922.043953]--[结束跟踪0000000000000002 ]-- 

之后、不再有以太网网络了。 必须断开 RJ45电缆并再次连接、这样通信才能再次正常工作。 为避免电缆重新连接、我从后续版本中选择了提交:

NET:以太网:TI:cpsw:在 ne_tx_timeout 上唤醒 TX 队列

之后仍然出现问题、但在 NETDEV 看门狗触发后以太网连接继续工作。
在 TI 论坛上的其他主题之后、我选择了另外两个提交、它们允许自定义 CPDMA 描述符池大小、这些提交如下:
 
net:以太网:TI:cpdma:最大限度减少 cpdma_desc_pool_create/ destroy ()中的参数数量
NET:以太网:TI:cpsw:添加了对 descs_pool_size dt 属性的支持
之后、问题发生的频率降低了、但仍然会不时发生。

我没有找到发生问题的特定场景、但当我添加大量 UDP 数据包的网络通信时、有时会发生问题。 它包括将 iperf 与目标和主机配合使用作为服务器、同时将两者都作为客户端。 此外、目标使用 udpsend 工具发送一些 UPD 数据包的目标也来自 TI 论坛。

有人知道这个问题的真正触发因素吗? 是否有人可以为我提供有关该问题的一些见解?

非常感谢。  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您是指此 E2E 吗?

    您是否也看到了 PRU-ICSS 上的问题?

    此致

    葡萄园

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Vineyet、

    感谢你的答复。

    我的测试中未发现任何 PRU-ICSS 问题。 它始终显示与 CPSW 相关的消息。 此外、我还从您提到的线程运行了 iperf 命令、但问题未发生。

    在本例中、当我在 eth0上注入 UDP 流量时、问题发生在 eth0上、而电路板在 eth1上具有相同的行为。

    我提到的另外两个主题是:

      
    我计划将描述符池的大小加倍、目前为1024、但这样做只能解决问题、而不能进行正确的修复或查找引发此问题的原因。

    Bests、

    Diogo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Diogo、

    这些是非常旧的线程,您的 SDK 版本有点旧,您能否使用最新版本进行检查? 也许已经解决了。

    当前 SDK 版本为6.03、内核为4.19

    此致

    葡萄园