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.

[参考译文] AM3352:以太网速度变慢

Guru**** 2540720 points
Other Parts Discussed in Thread: AM3352, TLK105L

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/570794/am3352-ethernet-slows-down

器件型号:AM3352
主题中讨论的其他器件: TLK105L

您好!
我的客户使用 AM3352。 去年首次运行的原型设计正常。 现在、他使用新的 AM3352样片构建了3种新的原型设计。 所有电路板都存在以太网波特率的零星问题。 有时、TX 波特率以在 Port1 RMII 上测量的~700Kbit (而不是100Mbit)运行。 重新连接网线几次后、仍然正常。 100Mbit 的 RX 信号正常。 RX/TX 25MHz 振荡器正常。原因可能是什么?

此致、Holger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Holger、
    我假设他们需要执行更多调试。 例如、查看以太网统计信息和错误计数器。 线路上是否有许多数据包的重发? MII 信号是什么样的? 是否指示了 RX 错误?
    如果问题消失、可能是时序问题(布局、温度影响)或其他连接问题。 到目前为止没有人能说...
    3个电路板的样片尺寸不大。 如果采用与第一块电路板不同的工艺、甚至可能会出现焊接问题。
    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Frank、错误计数器没有递增:

    ifconfig eth0

    eth0     Link encap:以太网 HWaddr 54:4A:16:A0:FF:45
          iNet addr:192.168.1.66 Bcast:192.168.1.255 Mask:255.255.255.0
          运行多播 MTU:1500 公制:1的上广播
          RX 数据包:27793错误:0丢弃:0超限:0帧:0
         TX 数据包:55947错误:0丢弃:0超限:0载波:0
          冲突:0 txqueuelen:1000
          RX 字节:2191402 (2.0 MIB) TX 字节:83949913 (80.0 MIB)
          中断:170

    看起来没有 pakets 被重新传输

    SS -ti
    状态      恢复 Q 发送 Q                                                                      本地地址:端口                                                                                       对等地址:端口
    estab      0                                                                                    0 127.0.0.1:44355                                                                                         127.0.0.1:4966
            立方 wscale:4、4 RTO:210 RTT:0.368/0.202 MSS:21848 cwnd:10发送4749.6Mbps lastsnd:1099760 laststrcv:809360 lastack:1099760 Pacing_Rate 9499.1Mbps rcv_space:43690
    estab      0                                                                                    0 127.0.0.1:4966                                                                                          127.0.0.1:44355
            立方 wscale:4、4 RTO:200 ATO:40 MSS:21848 cwnd:10 lastsnd:1099760 lastcv:1099760 lastack:1099760 rcv_space:43690
    estab      0                                                                          0::FFF:192.168.1.66:ssh                                                                                 ::FFF:192.168.1.77:50240
            立方 RTO:440 RTT:48.446/74.593 ATO:40 MSS:1460 cwnd:3 ssTHRESH:2发送723.3Kbps lastrcv:40 boost_rate 1.4Mbps retrans:0/40 rcv_space:29200

    FYI TX 低于 RX:

    iperf -t 2 -c 192.168.1.77
    ----------------------------------------
    客户端连接到192.168.1.77、TCP 端口5001"
    TCP 窗口大小:43.8 KB (默认值)
    ----------------------------------------
    [3] 本地192.168.1.66端口39681与192.168.1.77端口5001相连
    [ ID]间隔      传输    带宽
    [3]  0.0 - 9.4秒  256 KB  224 KB /秒

    Iperf -s
    ----------------------------------------
    服务器侦听 TCP 端口5001
    TCP 窗口大小:85.3KByte (默认值)
    ----------------------------------------
    [4] 本地192.168.1.66端口5001与192.168.1.77端口50420相连
    [ ID]间隔      传输    带宽
    [4]  0.0- 6.2秒 35.5 MB 47.9兆位/秒
    (只有47.9Mbits、因为另一个应用程序正在以更高的优先级运行)

    MII 信号现在进行评估、稍后发送
    ifconfig down/up 时也会出现此错误。

    问题:
    电源可能是一个原因? 应用程序是否处于限制状态、而 eth0会减慢、但 eth1却保持快速?

    此致、Holger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Holger、
    那么、这是 Linux... 实际上、数据不清楚。 问题出在哪里? 它们是否可以清楚地比较好板和坏板? TCP 方向性能的差异可能是正常的...
    此处衡量 TCP 性能可能不是最好的方法。 TCP 是一种双向协议。 即使 ifconfig 中没有错误、由于其他问题(丢包在线路上、缓冲区溢出)、仍然可能会有数据包重新传输。 TCP 会动态调整数据包大小和碎片、并取决于系统配置(MTU、窗口大小)。 因此、您还将测量此处的软件性能。 因此、如果另一个 Linux 进程使用大量的处理时间、则 TCP 性能可能会下降很多并随时间而变化。 单独在两个方向上测量的 UDP 可能会提供更好的信息。 然后使用外部抽头同时运行数据包日志、该抽头可以记录错误的数据包以查看线路上的任何问题。

    我不理解:
    >>应用程序是否处于限制状态,而 eth0会减慢,但 eth1却保持快速?
    这里是否有比较 eth0和 eth1的数据?
    我不知道's -ti'命令。 或许 BU 专家可以告诉...

    如果电源不足、可能会发生任何情况。

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    确保其他 Linux 进程在停止该进程时不会干扰 iperf。
    我更改了 UDP。

    eth0上的结果(用作客户端):
    iperf -t 2000 -c 192.168.1.77 -u
    ----------------------------------------
    客户端连接到192.168.1.77、UDP 端口5001
    发送1470字节数据报
    UDP 缓冲区大小:160KB (默认值)
    ----------------------------------------
    [3]本地192.168.1.66端口45476与192.168.1.77端口5001相连
    ^C[ID]间隔 传输 带宽
    [3] 0.0-11.1秒1.39MB 1.05Mbit/s
    [3]发送988个数据报
    [3]服务器报告:
    [3] 0.0-11.1秒1.04 MB 787 KB /秒0.256 ms 247/988 (25%)


    在 eth0上充当服务器:
    Iperf -s
    ----------------------------------------
    服务器侦听 TCP 端口5001
    TCP 窗口大小:85.3KByte (默认值)
    ----------------------------------------
    [4]本地192.168.1.66端口5001与192.168.1.77端口52047相连
    [ ID]间隔 传输 带宽
    [4] 0.0 - 7.1秒79.3 MB 94.1 Mbit/s

    我们在交换机模式下使用 cpsw、因此无法在 eth1上显式发送。 但我已经在 eth1上连接了另一个器件并开始测试。
    交换单元应将数据包定向到 eth1…
    iperf -t 2000 -c 192.168.1.124
    ----------------------------------------
    客户端连接到192.168.1.124、TCP 端口5001
    TCP 窗口大小:43.8 KB (默认值)
    ----------------------------------------
    [3]本地192.168.1.66端口60721与192.168.1.124端口5001相连
    ^C[ID]间隔 传输 带宽
    [3] 0.0 - 7.8秒83.5 MB 89.4兆位/秒

    “ss”是获取套接字统计信息…的工具

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

    那么、您认为 UDP 性能是这里的问题吗?

    根据一些 UDP iperf 文档:

    -u、--UDP 使用 UDP 而不是 TCP。 另请参见-b 选项。

    b、--bandwidth n[km]将目标带宽设置为 n 位/秒(UDP 默认为1Mbit/s、TCP 不受限制)。 如果存在多个流(-P 标志)、则会分别对每个流应用带宽限制。 您还可以向带宽说明符添加“/”和数字。 这称为"突发模式"。 它将发送给定数量的数据包、而不会暂停、即使暂时超出指定的带宽限制也是如此。


    您能否确保这里没有由于 iperf 而限制?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    首先、我重现了问题:
    iperf -c 192.168.1.77 -t 2000
    ----------------------------------------
    客户端连接到192.168.1.77、TCP 端口5001
    TCP 窗口大小:43.8 KB (默认值)
    ----------------------------------------
    [3]本地192.168.1.113端口59856与192.168.1.77端口5001相连
    ^C[ID]间隔 传输 带宽
    [3] 0.0 - 6.1秒256 KB 344 KB /秒

    之后、我再次尝试使用 UDP:
    iperf -c 192.168.1.77 -t 2000 -u -b 100m
    ----------------------------------------
    客户端连接到192.168.1.77、UDP 端口5001
    发送1470字节数据报
    UDP 缓冲区大小:160KB (默认值)
    ----------------------------------------
    [3]本地192.168.1.113端口32872与192.168.1.77端口5001相连
    ^C[ID]间隔 传输 带宽
    [3] 0.0 - 17.4秒198 MB 95.7 Mbit/s
    [3]发送了141454数据报
    [3]服务器报告:
    [3] 0.0-17.4秒147 MB 70.9Mbit/s 0.282 ms 36652/1448 (26%)
    [3] 0.0-17.4秒1收到的数据报顺序不一致

    我还附加了一个 Wireshark 捕获…
    我想知道我会获得如此不同的结果。 为什么 UDP 比 TCP 更快? CPSW 是否区分了这些协议?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    由于复杂的问题和专有数据的交换、我们不得不将讨论脱机。

    当前分析仅显示 ETH0上 TX 上的数据包丢失。 我们可能需要让以太网团队参与进来、因为 phy 在这里是 TLK105L。

    错误不是系统的、因为某些电路板正常、而其他电路板仅在链路上升/下降事件的一小部分上观察此问题。