On Aug19 12:56, Jason Wang wrote: > commit a9f98bb5ebe6fb1869321dcc58e72041ae626ad8 vhost: multiqueue > support changed the order of stopping the device. Previously > vhost_dev_stop would disable backend and only afterwards, unset guest > notifiers. We now unset guest notifiers while vhost is still > active. This can lose interrupts causing guest networking to fail. In > particular, this has been observed during migration. > > To adapt this, several other changes are needed: > - remove the hdev->started assertion in vhost.c since we may want to > start the guest notifiers before vhost starts and stop the guest > notifiers after vhost is stopped. > - introduce the vhost_net_set_vq_index() and call it before setting > guest notifiers. This is used to guarantee vhost_net has the correct > virtqueue index when setting guest notifiers. > > Reported-by: "Zhangjie (HZ)" <zhangji...@huawei.com> > Cc: William Dauchy <wdau...@gmail.com> > Signed-off-by: Michael S. Tsirkin <m...@redhat.com> > Signed-off-by: Jason Wang <jasow...@redhat.com> > > -- > Changes from Michael's patch: > - Remove the assertion > Changes from V1: > - Rebase to latest > Changes from V2: > - Introduce vhost_net_set_vq_index() to unbreak multiqueue
indeed I had with v2: qemu-system-x86_64: hw/virtio/vhost.c:990: vhost_virtqueue_mask: Assertion `n >= hdev->vq_index && n < hdev->vq_index + hdev->nvqs' failed. v3 seems ok to me -- William
signature.asc
Description: Digital signature