While I was testing virtio with ubuntu 14.04 kvm as host and dpdk16.07 linux as guest, quite often I have seen that I get into a situation where virtio_recv_mergeable_pkts() gets into a forever loop, after sending traffic for a while. In the below API, I see that it clearly leads to a while loop, I am not quite familiar with virtio or mergeable buffers, so thought of checking with dpdk alias on the intent here.
I checked the linux kernel virtio_net.c file which does the similar mergeable recieve, and the kernel code breaks out in case of error. Shouldnt dpdk be breaking out of here on error instead of continue ? virtio_recv_mergeable_pkts() { <snip> while (i < nb_used) { <snip> * num = virtqueue_dequeue_burst_rx(rxvq, rcv_pkts, len, 1);* * if (num != 1)* * continue;* <snip> } <snip? } Rgds, Gopa.