Re: [RFC 0/5] virtio support for container
From: Tan, Jianfeng <hidden>
Date: 2016-01-06 05:47:30
On 12/31/2015 11:39 PM, Pavel Fedin wrote:
Hello! Last minute note. I have found the problem but have no time to research and fix it. It happens because ovs first creates the device, starts it, then stops it, and reconfigures queues. The second queue allocation happens from within netdev_set_multiq(). Then ovs restarts the device and proceeds to actually using it. But, queues are not initialized properly in DPDK after the second allocation. Because of this thing: /* On restart after stop do not touch queues */ if (hw->started) return 0;
Hi Fedin, As you see, I also think it is a bug. A device should be ok to start/stop/start... I already send a patch to fix this. http://dpdk.org/ml/archives/dev/2016-January/031010.html Thanks, Jianfeng
It keeps us away from calling virtio_dev_rxtx_start(), which should in turn call virtio_dev_vring_start(), which calls vring_init(). So, VIRTQUEUE_NUSED() dies badly because vq->vq_ring all contains NULLs. See you all after 10th. And happy New Year again!