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.

[参考译文] 66AK2E05:由于 FDQ 或 SW 而导致 UDP 封包丢失

Guru**** 2589300 points
Other Parts Discussed in Thread: 66AK2E05

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/587554/66ak2e05-udp-packet-loss-due-to-fdq-or-sw

器件型号:66AK2E05

你(们)好

好的、我在上个月半月尝试找到我的问题的答案、但没有结果。

我的问题很简单、我尝试在以太网接口上获取1Gb/s 而不会丢失数据包。 下面是我的主要配置

系统:66ak2e05、PDK 4.0.2、arm、参考-pa_emac、完美运行高达200Mb/s 的 UDP 数据包的 TX/RX

配置:

  1. ALE 禁用
  2. 累加器--最大输入数,即10时的80
  3. 描述符总数16384
  4. RX 描述符16300

现在、当传入的数据包数量超过16300时、我开始获取数据包丢失、因此我可以得出结论、空闲描述符的数量无法及时释放自己以重复使用。

将 RX 流定义为1时、我使用"rx_error_handling "来解决此问题、但在这样做时、我会得到一种新的错误形式、即在交换机的端口1处接收到的数据包数量、假设为800、则为该数量 从端口0发送的数据包的数量为500ish、具体取决于我在本部分中使用的 Rx 描述符的数量、我使用的是512。  e2e.ti.com/.../581707

因此,如果您能在解决此问题方面提供任何帮助,我们将不胜感激!!

此致

Hannan

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

    我已将此事转发给以太网专家。 他们的反馈应发布在此处。

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

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

    问题在于、PA EMAC 示例仅用于数据包发送和接收测试、而不用于性能测试。 我们没有 RTOS 降级为1Gb/s 的吞吐量。 利用 NDK、Keystone I EMAC 吞吐量之前有 HUA 演示。 HUA 演示在 Processor SDK 中已停产。

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

    我希望我们能够解决最有可能从队列管理方面解决的 Rx 流处理问题、如果不能解决、我们可以再次从 QM 方面查看 FDQ 设置。 我知道、没有 PA EMAC 获得1Gb/s 的有效示例、正是我尝试在论坛上找到解决方案的原因。

    让我再解释一下我的问题 当"rx_error_handling "设置为1时、如果将数据包设置为0、则会使数据包在交换机上丢失数据包、这会导致我无法足够快地释放 FDQ。

    如果无法做到这一点、请告诉我

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

    我想您可以先在 K2E 上运行预编译 Linux 映像、然后使用 iperf 测量 UDP 吞吐量、其中 K2E 是 iperf 服务器、以了解接收 UDP 包的速度而不会丢失 (使用四个线程和一个线程来查看吞吐量是否受 CPU 周期的限制)。 在 RTOS 情况下、处理数据包将是一个内核/一个 thtet。 如果结果是可以接受的、那么我们可以查看 Linux EMAC 驱动程序以了解队列设置的方式。

    此致、Eric