您好!
目前遇到这样一个疑惑:
1)假设我把两个queue对应到一个Tx channel上,优先级一样;
2)使用的又是host模式的descriptors。这样我的我把数据分成了4段,分别对应1个SOP描述符,两个MOP描述符,和一个EOP描述符,我分别叫他们1 2 3 4 ;
3)这样我一个应用把1 2 3 4分别进入两个不同的queue上,queue 1上有1 3,queue 2上有 2 4。
那这样我的TX channel里的PKTdma engine需要从queue中读取描述符:
1)那么我的dma需要依次按照1 2 3 4 的顺序读出描述符么,传输的时候是不是必须按着顺序传送,这样接收端才能获得正确的payload;
2)我觉得1)是必须按序号来的,那这样dma如何去识别这个序列,加入原子操作的时候,3比2先辈dma读取,dma如何等待2的出现(这个是问题的关键);
同样的问题也能出现在下面的场景下,一个queue对应两个tx channel:
queue中的包依次是 A1 B1 A2 B2,channel 1需要处理A的描述符,但是有B在其中插队,那Channel如何处理B1以等待A2的出现呢?
UG里面可能在这个点上没有深入,或者是我没看到,所以麻烦Andy或者前辈们指点一下。
另外在确认一个问题:queue其实存放在QMSS里面的,就是存放了队列头核尾的两个entries的指针,linking ram放的是entries,而不是描述符;描述符实际上是放在memory region 里面。我理解的正确么?
谢谢!
Alan