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!
>
>

Reply via email to