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.

关于6670的丢包问题

Other Parts Discussed in Thread: TMS320C6670, SYSBIOS

我们现在的TMS320C6670方案目的:主要是处理网络上的数据收发。具体情况:

core0:linux-c6x的系统,运行对时序要求不高的一些应用,以及core1/2/3的加载。

core1/2/3:sysbios的系统,运行实时系统进行自研的网络协议处理,并且负责了pa,qmss,cppi的初始化,以及pa过滤规则配置。

使用了sgmii0/1的网口:sgmii0的数据直接由core0处理,sgmii1的数据向外发送先由core0 640队列发送给pa,再由初始化定义的规则转至core1,core1进行一定的处理后通过648队列发送到sgmii1出去。

现在的问题是在工作过程中发先从sgmii1出去的数据有丢包,经过计数对比后core0 640队列->pa->core1 729队列接收时发生了丢包。

问如何能定位的更精确是哪一阶段丢包?pa内部丢包有可能么??qmss里只有队列当前描述符个数的统计,但因为qmss工作速度快每次发送时调用push操作后再读取queue里的

描述符个数就发现count为0。现在也不知道如何再继续定位分析丢包的原因了。能否给些建议?

  • 丢包具体体现的现象是啥,是怎么观察到的。

    在GE内部有统计模块,记录各个端口收发的数据包个数,可以查看统计分析;另外可以改变数据方向,将数据送回core0看看报文个数是否一致。

  • 具体队列配置如下:

    1) core0通过640队列将描述符发给pdsp0,884队列负责回收;

    2) core1通过729队列接收core0描述符中发送过来的数据,qmss_AccCmdCfg中的channel配置为9,maxPageEntries为4。

    3) core1的接收中断处理函数eventID=48+(9/4)=50,vectID=7+(9/4)=9。

    现象是:

    1) core0描述符通过tx 640队列发送完顺利回收到884,从计数看无描述符丢失现象

    2) core1接收中断统计里发现收到数据有丢失的,从中断统计看就比发送端计数少。

  • 目前是核间通信丢包。

  • 因为core0通过640队列将描述符发送到pdsp0中,通过规则配置core1的729队列负责接收。

    通过观察pdsp0的收包计数器发现包个数与core0发出的一致,但在core1的中断接收里就发现比实际发出的少。