qemu-e2k/hw
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
..
9pfs * configure: use a native non-cross compiler for linux-user 2024-01-04 19:55:20 +00:00
acpi * configure: use a native non-cross compiler for linux-user 2024-01-04 19:55:20 +00:00
adc hw/adc: Constify VMState 2023-12-29 11:17:30 +11:00
alpha hw/alpha/dp264: use pci_init_nic_devices() 2024-02-02 16:23:47 +00:00
arm target/arm: fix exception syndrome for AArch32 bkpt insn 2024-02-02 18:56:32 +00:00
audio hw/audio/sb16: Do not migrate qdev properties 2024-01-05 16:20:15 +01:00
avr hw/avr/atmega: Fix wrong initial value of stack pointer 2023-11-28 14:27:12 +01:00
block virtio-blk: do not use C99 mixed declarations 2024-02-07 15:08:26 +01:00
char hw/char/imx_serial: Implement receive FIFO and ageing timer 2024-01-26 11:34:21 +00:00
core hw/core: Remove transitional infrastructure from BusClass 2024-02-02 13:51:57 +00:00
cpu target/arm: Move GTimer definitions to new 'gtimer.h' header 2024-01-26 11:30:49 +00:00
cris hw/net/etraxfs-eth: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
cxl cxl: Clean up includes 2024-01-30 21:20:20 +03:00
display vga: sort-of implement word and double-word access modes 2024-01-18 10:43:14 +01:00
dma hw/dma: Constify VMState 2023-12-29 11:17:30 +11:00
fsi hw/fsi: Aspeed APB2OPB & On-chip peripheral bus 2024-02-01 08:33:18 +01:00
gpio hw/gpio: Constify VMState 2023-12-29 11:17:30 +11:00
hppa hw/net/lasi_i82596: use qemu_create_nic_device() 2024-02-02 16:23:47 +00:00
hyperv vmbus: Switch bus reset to 3-phase-reset 2024-02-02 13:51:57 +00:00
i2c hw/i2c: Constify VMState 2023-12-29 11:17:30 +11:00
i386 hw/xen: use qemu_create_nic_bus_devices() to instantiate Xen NICs 2024-02-02 16:23:47 +00:00
ide hw/ide: Constify VMState 2023-12-29 11:17:30 +11:00
input adb: Switch bus reset to 3-phase-reset 2024-02-02 13:51:57 +00:00
intc hw/intc/xics: Include missing 'cpu.h' header 2024-01-30 21:20:20 +03:00
ipack hw/ipack: Constify VMState 2023-12-29 11:17:30 +11:00
ipmi hw/ipmi: Constify VMState 2023-12-29 11:17:30 +11:00
isa hw/isa: Constify VMState 2023-12-29 11:17:30 +11:00
loongarch hw/loongarch: use pci_init_nic_devices() 2024-02-02 16:23:47 +00:00
m68k hw/m68k/q800: use qemu_find_nic_info() 2024-02-02 16:23:47 +00:00
mem meson: remove CONFIG_ALL 2023-12-31 09:11:28 +01:00
microblaze hw/microblaze: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
mips hw/mips/jazz: use qemu_find_nic_info() 2024-02-02 16:23:47 +00:00
misc hw/misc/xlnx-versal-crl: Build it only once 2024-01-26 11:30:49 +00:00
net target/arm: fix exception syndrome for AArch32 bkpt insn 2024-02-02 18:56:32 +00:00
nios2 target/nios2: Deprecate the Nios II architecture 2023-11-23 14:10:04 +00:00
nubus trace-events: Fix the name of the tracing.rst file 2023-09-08 13:08:51 +03:00
nvme hw/nvme: Clean up local variable shadowing in nvme_ns_init() 2023-09-29 10:07:20 +02:00
nvram acpi: Clean up includes 2024-01-30 21:20:20 +03:00
openrisc hw/openrisc/openrisc_sim: use qemu_create_nic_device() 2024-02-02 16:23:47 +00:00
pci target/arm: fix exception syndrome for AArch32 bkpt insn 2024-02-02 18:56:32 +00:00
pci-bridge * configure: use a native non-cross compiler for linux-user 2024-01-04 19:55:20 +00:00
pci-host pci-host: designware: Limit value range of iATU viewport register 2024-02-02 13:51:58 +00:00
pcmcia hw/pcmcia/pxa2xx: Inline pxa2xx_pcmcia_init() 2023-10-27 12:48:57 +01:00
ppc hw/ppc: use pci_init_nic_devices() 2024-02-02 16:23:47 +00:00
rdma hw/rdma/vmw/pvrdma_cmd: Use correct struct in query_port() 2023-10-21 15:00:22 +03:00
remote Replace "iothread lock" with "BQL" in comments 2024-01-08 10:45:43 -05:00
riscv hw/riscv: use qemu_configure_nic_device() 2024-02-02 16:23:47 +00:00
rtc hw/rtc: Constify VMState 2023-12-30 07:38:06 +11:00
rx hw/rx/rx62n: Use qdev_prop_set_array() 2023-11-10 18:19:13 +01:00
s390x target/arm: fix exception syndrome for AArch32 bkpt insn 2024-02-02 18:56:32 +00:00
scsi virtio-scsi: Attach event vq notifier with no_poll 2024-02-07 21:50:32 +01:00
sd hw/sd: Constify VMState 2023-12-30 07:38:06 +11:00
sensor hw/sensor: Constify VMState 2023-12-30 07:38:06 +11:00
sh4 hw/sh4/r2d: use pci_init_nic_devices() 2024-02-02 16:23:47 +00:00
smbios meson: remove CONFIG_ALL 2023-12-31 09:11:28 +01:00
sparc hw/sparc/sun4m: use qemu_find_nic_info() 2024-02-02 16:23:47 +00:00
sparc64 hw/sparc64/sun4u: use pci_init_nic_devices() 2024-02-02 16:23:47 +00:00
ssi hw/ssi: Implement BCM2835 SPI Controller 2024-02-02 13:51:59 +00:00
timer hw/timer/hpet: Convert DPRINTF to trace events 2024-01-19 12:28:10 +01:00
tpm hw/tpm: Constify VMState 2023-12-30 07:38:06 +11:00
tricore hw/tricore: Log failing test in testdevice 2023-09-29 08:28:02 +02:00
ufs hw/ufs: avoid generating the same ID string for different LU devices 2023-12-05 13:57:18 +09:00
usb scsi: Don't ignore most usb-storage properties 2024-02-07 15:25:13 +01:00
vfio vfio/pci: Clear MSI-X IRQ index always 2024-01-29 08:26:25 +01:00
virtio virtio: Re-enable notifications after drain 2024-02-07 21:51:03 +01:00
watchdog hw/watchdog: Constify VMState 2023-12-30 07:38:06 +11:00
xen target/arm: fix exception syndrome for AArch32 bkpt insn 2024-02-02 18:56:32 +00:00
xenpv hw/xen: use qemu_create_nic_bus_devices() to instantiate Xen NICs 2024-02-02 16:23:47 +00:00
xtensa hw/xtensa/xtfpga: use qemu_create_nic_device() 2024-02-02 16:23:47 +00:00
Kconfig hw/fsi: Introduce IBM's Local bus 2024-02-01 08:13:30 +01:00
meson.build hw/fsi: Introduce IBM's Local bus 2024-02-01 08:13:30 +01:00