qemu-cr16/hw/virtio
Hanna Czenczek 5bdbaebcce virtio: Re-enable notifications after drain
During drain, we do not care about virtqueue notifications, which is why
we remove the handlers on it.  When removing those handlers, whether vq
notifications are enabled or not depends on whether we were in polling
mode or not; if not, they are enabled (by default); if so, they have
been disabled by the io_poll_start callback.

Because we do not care about those notifications after removing the
handlers, this is fine.  However, we have to explicitly ensure they are
enabled when re-attaching the handlers, so we will resume receiving
notifications.  We do this in virtio_queue_aio_attach_host_notifier*().
If such a function is called while we are in a polling section,
attaching the notifiers will then invoke the io_poll_start callback,
re-disabling notifications.

Because we will always miss virtqueue updates in the drained section, we
also need to poll the virtqueue once after attaching the notifiers.

Buglink: https://issues.redhat.com/browse/RHEL-3934
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
Message-ID: <20240202153158.788922-3-hreitz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2024-02-07 21:51:03 +01:00
..
Kconfig
meson.build hw/arm/virt-acpi-build.c: Migrate virtio creation to common location 2024-01-10 18:47:46 +10:00
trace-events vdpa: use vdpa shared for tracing 2023-12-26 04:51:07 -05:00
trace.h
vdpa-dev-pci.c
vdpa-dev.c hw/virtio: Constify VMState 2023-12-30 07:38:06 +11:00
vhost-backend.c vhost: Add worker backend callouts 2023-12-25 11:34:55 -05:00
vhost-iova-tree.c
vhost-iova-tree.h
vhost-scsi-pci.c
vhost-shadow-virtqueue.c vhost: Expose vhost_svq_available_slots() 2023-10-18 10:41:50 -04:00
vhost-shadow-virtqueue.h vhost: Expose vhost_svq_available_slots() 2023-10-18 10:41:50 -04:00
vhost-stub.c vhost: Add vhost_get_max_memslots() 2023-10-12 14:15:22 +02:00
vhost-user-blk-pci.c
vhost-user-device-pci.c
vhost-user-device.c
vhost-user-fs-pci.c
vhost-user-fs.c hw/virtio: Constify VMState 2023-12-30 07:38:06 +11:00
vhost-user-gpio-pci.c
vhost-user-gpio.c vhost-user: fix the reconnect error 2023-12-02 15:56:49 -05:00
vhost-user-i2c-pci.c
vhost-user-i2c.c
vhost-user-input-pci.c
vhost-user-rng-pci.c
vhost-user-rng.c virtio: rng: Check notifier helpers for VIRTIO_CONFIG_IRQ_IDX 2023-12-25 11:34:55 -05:00
vhost-user-scmi-pci.c
vhost-user-scmi.c
vhost-user-scsi-pci.c
vhost-user-vsock-pci.c
vhost-user-vsock.c
vhost-user.c vhost-user: Interface for migration state transfer 2023-11-07 03:39:10 -05:00
vhost-vdpa.c vdpa: move memory listener to vhost_vdpa_shared 2023-12-26 04:51:07 -05:00
vhost-vsock-common.c
vhost-vsock-pci.c
vhost-vsock.c hw/virtio: Constify VMState 2023-12-30 07:38:06 +11:00
vhost.c vhost: Add high-level state save/load functions 2023-11-07 03:39:10 -05:00
virtio-9p-pci.c
virtio-acpi.c acpi: Clean up includes 2024-01-30 21:20:20 +03:00
virtio-balloon-pci.c
virtio-balloon.c hw/virtio: Constify VMState 2023-12-30 07:38:06 +11:00
virtio-blk-pci.c
virtio-bus.c
virtio-config-io.c
virtio-crypto-pci.c
virtio-crypto.c hw/virtio: Constify VMState 2023-12-30 07:38:06 +11:00
virtio-hmp-cmds.c
virtio-input-host-pci.c
virtio-input-pci.c
virtio-iommu-pci.c hw/virtio: Free VirtIOIOMMUPCI::vdev.reserved_regions[] on finalize() 2023-11-27 15:27:41 +00:00
virtio-iommu.c hw/virtio: Constify VMState 2023-12-30 07:38:06 +11:00
virtio-md-pci.c
virtio-mem-pci.c virtio-mem: Expose device memory dynamically via multiple memslots if enabled 2023-10-12 14:15:22 +02:00
virtio-mem-pci.h
virtio-mem.c misc: Simplify qemu_prealloc_mem() calls 2024-01-05 16:20:15 +01:00
virtio-mmio.c hw/virtio: Constify VMState 2023-12-30 07:38:06 +11:00
virtio-net-pci.c
virtio-pci.c hw/virtio: Constify VMState 2023-12-30 07:38:06 +11:00
virtio-pmem-pci.c
virtio-pmem-pci.h
virtio-pmem.c Revert "hw/virtio/virtio-pmem: Replace impossible check by assertion" 2023-11-06 13:53:59 +01:00
virtio-qmp.c
virtio-qmp.h
virtio-rng-pci.c
virtio-rng.c hw/virtio: Constify VMState 2023-12-30 07:38:06 +11:00
virtio-scsi-pci.c
virtio-serial-pci.c
virtio-stub.c
virtio.c virtio: Re-enable notifications after drain 2024-02-07 21:51:03 +01:00