On Thu, 11 Feb 2021 11:34:53 +0300 Pavel Dovgalyuk <pavel.dovgal...@ispras.ru> wrote:
> 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.dovgal...@ispras.ru> > --- > hw/virtio/virtio-pci.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c > index 094c36aa3e..76fbc111ea 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)) > > @@ -1746,6 +1747,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. > > I think you would need to do the same for any device using ioeventfd, no?