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.
首先想确认下我的理解tx FDQ和tx completion queue是同一个概念(如果不对请指正)。我在我的应用中使用的tx FDQ 有三个descriptors。我想发送完一个packet后能产生一个中断来做一些后处理。我的理解是packet发送成功的标志应该是tx completion queue 成功回收到了一个descriptor(如果不对请指正),所以希望通过tx completion queue 每回收一个descriptor产生中断来做后处理。因为我的tx completion queue中有三个descriptors,想每回收一个descriptor就产生一个中断,分析下来觉的accumulator queue和queue pend queue都不能达到要求。请帮忙看看我的理解对不对?是否有更好的方法来实现发送成功后做一些后处理操作的方法?多谢!
准确的来说QMSS里面发送有3个queue的概念,空闲Queue,发送Queue,完成Queue。空闲Queue提供空闲的descriptor,发送Queue发送pakcet,完成Queue接受发送完成的Descriptor。其中空闲Queue和完成Queue可以是同一个Queue。(比如你的理解FDQ和Completion Queue可以是同一个概念)。
在你的需求中,最好空闲Queue和完成Queue是不同的Queue,你将完成Queue设置为可以产生Queue Pend Queue的中断。在开始的时候完成Queue中descriptor数目为0,当发送一个queue之后,完成Queue接受到1个descriptor,这时产生中断,你可以处理这个中断,在中断中将这个descriptor回收到空闲Queue,这样完成中断处理过程。