[dpdk-dev] [PATCH v2] net/virtio: fix an incorrect behavior of device stop/start
tiwei.bie at intel.com
Mon Dec 4 08:19:35 CET 2017
On Sat, Dec 02, 2017 at 12:30:33PM +0800, Tiwei Bie wrote:
> Hi Antonio,
> On Sat, Dec 02, 2017 at 01:17:58AM +0800, Fischetti, Antonio wrote:
> > Hi All,
> > I've got an update on this.
> > I could replicate the same issue by using testpmd + a VM (= Virtual Machine).
> > The test topology I'm using is:
> > [Traffic gen]----[NIC port #0]----[testpmd]----[vhost port #2]----+
> > |
> > |
> > [testpmd in
> > the VM]
> > |
> > |
> > [Traffic gen]----[NIC port #1]----[testpmd]----[vhost port #3]----+
> > So there's no OvS now in the picture: one testpmd running on the host
> > and one testpmd running on the VM.
> > The issue is that no packet goes through testpmd in the VM.
> > It seems this is happening after this patch was upstreamed.
> > Please note
> > -----------
> > To replicate this issue both the next 2 conditions must be met:
> > - the traffic is already being sent before launching testpmd in the VM
> > - there are at least 2 forwarding lcores.
> Do you see anything I missed? Or can you reproduce the issue with the
> setup I'm using?
Are you using vector Rx in your test? After some further
investigations, I found that the vector Rx could be broken
if backend has consumed all the avail descs before the
device is started. Because in current implementation, the
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.
More information about the dev