[dpdk-dev] [PATCH 1/5] net/virtio: fix vector Rx break caused by rxq flushing

Kevin Traynor ktraynor at redhat.com
Fri Dec 8 11:17:22 CET 2017


On 12/08/2017 02:30 AM, Tiwei Bie wrote:
> On Thu, Dec 07, 2017 at 04:00:57PM +0000, Kevin Traynor wrote:
>> On 12/07/2017 05:30 AM, Tiwei Bie wrote:
>>> The vector Rx will be broken if backend has consumed all
>>> the descs in the avail ring before the device is started.
>>> Because in current implementation, vector Rx will return
>>> immediately without refilling the avail ring if the used
>>> ring is empty. So we have to refill the avail ring after
>>> flushing the elements in the used ring for vector Rx.
>>>
>>> Besides, vector Rx has a different ring layout assumption
>>> and mbuf management. So we need to handle it differently.
>>>
>>
>> Hi Tiwei, does the issue only occur with the vector rx? How about if the
>> simple rx is used because VIRTIO_NET_F_MRG_RXBUF is set?
> 
> Hi Kevin,
> 
> Yes, you are right! The issue only occurs with the vector
> Rx. The vector Rx (i.e. the simple Rx) won't be used if
> VIRTIO_NET_F_MRG_RXBUF is set.
> 
> Best regards,
> Tiwei Bie
> 

Thanks for clarifying this Tiwei,

Kevin.



More information about the dev mailing list