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
>

Reply via email to