Hi Jason, This series does not do the job. Test case: tap, 4 queues, 2 CPU (so only 2 queues are enabled) For Q0 and Q1 vhost_net_start_one succeeds, For Q2: vhost_net_start_one calls vhost_dev_start (the call succeeds, does not start queue that is not enabled), then vhost_net_start_one calls vhost_net_set_backend, the call fails
Thanks, Yuri On Fri, Mar 22, 2019 at 11:28 AM Jason Wang <jasow...@redhat.com> wrote: > > Hi: > > This series try to avoid starting virtqueue that is not enabled. This > is done through querying it through a bus specific way and skip the > virtqueues if not enabled when starting vhost virtqueues. > > Only PCI is implemented, maybe it's better to move the enable flag to > virito genenic virtqueue structure. > > Yuri, Could you please to test this series to see if it solves the > issues when using windows driver? > > Thanks > > Jason Wang (4): > virtio-bus: introduce a new method for querying the queue status > virtio-pci: set enabled for legacy device > virtio-pci: implement queue_enabled > vhost_net: don't start vhost for the virtqueue that is not enabled > > hw/virtio/vhost.c | 11 +++++++++++ > hw/virtio/virtio-pci.c | 12 +++++++++++- > include/hw/virtio/virtio-bus.h | 4 ++++ > 3 files changed, 26 insertions(+), 1 deletion(-) > > -- > 2.19.1 >