[dpdk-dev] Should the other queues at same port work when one queue is full ?

XU Liang liang.xu at cinfotech.cn
Thu Jan 22 01:44:16 CET 2015


Thanks, I had validated the 'rx_drop_en' setting. It's worked. 
Regards,/Liang------------------------------------------------------------------From:Bruce Richardson <bruce.richardson at intel.com>Time:2015 Jan 19 (Mon) 18:58To:徐亮 <liang.xu at cinfotech.cn>Cc:dev <dev at dpdk.org>Subject:Re: [dpdk-dev] Should the other queues at same port work when one queue is full ?
On Sun, Jan 18, 2015 at 07:12:31PM +0800, XU Liang wrote:
> I configured the 82599 ports to work in multi-queue mode and flow director to assign different TCP connections to different queues. A multi-process application receive packets from queues and each process reads a queue. When I kill one process, the process's queue is full, all descriptors of the queue is used. Then I send packets to other queues, but no packet is received by other processes from other queues. And no ierrors at the port stats.  I'm not sure it's a bug or designed that way. 
> I expect that when a process exits abnormally affect only part of the connections, but now all the connections are not working properly. How can I just turn off the exception queue, so that other processes / queues work properly.

You need to turn on the "drop enable" bit in your NIC configuration to allow 
packets for full queues to be dropped, allowing other queues to continue as normal.
In DPDK this is set by the value "rx_drop_en" in the rx configuration.

In the latest DPDK tree, you can see this value being set for the symmetric mp
example application in: examples/multi_process/symmetric_mp/main.c

Regards,
/Bruce


More information about the dev mailing list