请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:PROCESSOR-SDK-AM57X 主题中讨论的其他器件:AM5728
工具/软件:Linux
您好!
我尝试使用运行处理器 SDK 的 AM572x EVM 诊断网络问题。 我使用它在 eth0上接收40Mb 数据流、该数据流完全由 UDP 数据包组成。 这些数据包直接从发送器器件发送到 EVM、并将 EVM 的 MAC 和 IP 地址预先编程到数据包中。 数据包的 MTU 大小一致、并定期发送。
我注意到、即使在将 UDP 接收队列存储器缓冲区大小扩展到(看起来像一个大容量) 12MB 之后、也会出现显著的下降率。 但是、这只会导致数据包缓冲区溢出延迟。 我每10个数据包丢弃一个数据包。 使用 SDK 的默认 UDP 接收缓冲区大小、它是1/6。
考虑到 EVM 的额定千兆位以太网、我无法可靠地处理40Mb 有没有具体原因? 起初,我认为它与数据流使用的 gstreamer 实现有关,但即使只是通过一系列 recvfrom ()调用记录原始数据包转储,数据包丢弃率也很明显。
谢谢、
Tom