[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 01/13] virtio: disable ioeventfd for record/replay
From: |
Michael S. Tsirkin |
Subject: |
[PULL 01/13] virtio: disable ioeventfd for record/replay |
Date: |
Wed, 7 Jul 2021 11:02:55 -0400 |
From: Pavel Dovgalyuk <pavel.dovgalyuk@ispras.ru>
virtio devices support separate iothreads waiting for
events from file descriptors. These are asynchronous
events that can't be recorded and replayed, therefore
this patch disables ioeventfd for all devices when
record or replay is enabled.
Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Message-Id: <162125678869.1252810.4317416444097392406.stgit@pasha-ThinkPad-X280>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/s390x/virtio-ccw.c | 6 ++++++
hw/virtio/virtio-mmio.c | 6 ++++++
hw/virtio/virtio-pci.c | 6 ++++++
3 files changed, 18 insertions(+)
diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index d68888fccd..6a2df1c1e9 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -31,6 +31,7 @@
#include "trace.h"
#include "hw/s390x/css-bridge.h"
#include "hw/s390x/s390-virtio-ccw.h"
+#include "sysemu/replay.h"
#define NR_CLASSIC_INDICATOR_BITS 64
@@ -770,6 +771,11 @@ static void virtio_ccw_device_realize(VirtioCcwDevice
*dev, Error **errp)
dev->flags &= ~VIRTIO_CCW_FLAG_USE_IOEVENTFD;
}
+ /* fd-based ioevents can't be synchronized in record/replay */
+ if (replay_mode != REPLAY_MODE_NONE) {
+ dev->flags &= ~VIRTIO_CCW_FLAG_USE_IOEVENTFD;
+ }
+
if (k->realize) {
k->realize(dev, &err);
if (err) {
diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c
index 5952471b38..1af48a1b04 100644
--- a/hw/virtio/virtio-mmio.c
+++ b/hw/virtio/virtio-mmio.c
@@ -29,6 +29,7 @@
#include "qemu/host-utils.h"
#include "qemu/module.h"
#include "sysemu/kvm.h"
+#include "sysemu/replay.h"
#include "hw/virtio/virtio-mmio.h"
#include "qemu/error-report.h"
#include "qemu/log.h"
@@ -740,6 +741,11 @@ static void virtio_mmio_realizefn(DeviceState *d, Error
**errp)
proxy->flags &= ~VIRTIO_IOMMIO_FLAG_USE_IOEVENTFD;
}
+ /* fd-based ioevents can't be synchronized in record/replay */
+ if (replay_mode != REPLAY_MODE_NONE) {
+ proxy->flags &= ~VIRTIO_IOMMIO_FLAG_USE_IOEVENTFD;
+ }
+
if (proxy->legacy) {
memory_region_init_io(&proxy->iomem, OBJECT(d),
&virtio_legacy_mem_ops, proxy,
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index b321604d9b..f1e105fa52 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -37,6 +37,7 @@
#include "qemu/range.h"
#include "hw/virtio/virtio-bus.h"
#include "qapi/visitor.h"
+#include "sysemu/replay.h"
#define VIRTIO_PCI_REGION_SIZE(dev)
VIRTIO_PCI_CONFIG_OFF(msix_present(dev))
@@ -1760,6 +1761,11 @@ static void virtio_pci_realize(PCIDevice *pci_dev, Error
**errp)
proxy->flags &= ~VIRTIO_PCI_FLAG_USE_IOEVENTFD;
}
+ /* fd-based ioevents can't be synchronized in record/replay */
+ if (replay_mode != REPLAY_MODE_NONE) {
+ proxy->flags &= ~VIRTIO_PCI_FLAG_USE_IOEVENTFD;
+ }
+
/*
* virtio pci bar layout used by default.
* subclasses can re-arrange things if needed.
--
MST
- [PULL 00/13] pc,pci,virtio: bugfixes, improvements, Michael S. Tsirkin, 2021/07/07
- [PULL 01/13] virtio: disable ioeventfd for record/replay,
Michael S. Tsirkin <=
- [PULL 03/13] hw/pci-host/q35: Ignore write of reserved PCIEXBAR LENGTH field, Michael S. Tsirkin, 2021/07/07
- [PULL 05/13] virtio-pci: Added check for virtio device in PCI config cbs., Michael S. Tsirkin, 2021/07/07
- [PULL 04/13] virtio-pci: Added check for virtio device presence in mm callbacks., Michael S. Tsirkin, 2021/07/07
- [PULL 02/13] virtio: Clarify MR transaction optimization, Michael S. Tsirkin, 2021/07/07
- [PULL 06/13] virtio-pci: Changed return values for "notify", "device" and "isr" read., Michael S. Tsirkin, 2021/07/07
- [PULL 07/13] migration: failover: reset partially_hotplugged, Michael S. Tsirkin, 2021/07/07
- [PULL 08/13] tests: acpi: prepare for changing DSDT tables, Michael S. Tsirkin, 2021/07/07
- [PULL 09/13] acpi: pc: revert back to v5.2 PCI slot enumeration, Michael S. Tsirkin, 2021/07/07
- [PULL 10/13] tests: acpi: pc: update expected DSDT blobs, Michael S. Tsirkin, 2021/07/07
- [PULL 11/13] acpi/ged: fix reset cause, Michael S. Tsirkin, 2021/07/07