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.

GbE 朝 PC 发数据为什么总是丢包?



在C6678 平台下,用GbE发包,core0每次朝GE TXQ 发包的数量是正确的,但是PC端显示丢包。

具体情况如下:

在中断服务程序ISR中,core0使用QMSS 朝GE TxQ 连续PUSH 5个包,每包512Bytes。中断频率为Freq。

通过TSC计算:ISR从开始到结束,共消耗时钟2500左右,cpu主频为1GHz。

按照这个计算,在保证 两次中断间隔时间 > ISR时间 基础上,中断频率最大应该可以达到 400KHz。

但是通过实验,发现当中断达到20KHz时,PC端收到的包数量就少于发包数量,丢包率大概10%左右。

我个人的分析:ISR消耗的时钟是对QMSS操作的时间,也就是每次中断到来时,core0从FDQ 中pop desc,之后push到GE TXQ的时间是足够短的,但是GbE自己在发送数据的时候,产生了丢包,但是不知道应该从哪里着手检查。。。