qemu-irix/hw/scsi
Pavel Butsykin fc63922556 virtio: sync the dataplane vring state to the virtqueue before virtio_save
When creating snapshot with the dataplane enabled, the snapshot file gets
not the actual state of virtqueue, because the current state is stored in
VirtIOBlockDataPlane. Therefore, before saving snapshot need to sync
the dataplane vring state to the virtqueue. The dataplane will resume its
work at the next notify virtqueue.

When snapshot loads with loadvm we get a message:
VQ 0 size 0x80 Guest index 0x15f5 inconsistent with Host index 0x0:
    delta 0x15f5
error while loading state for instance 0x0 of device
    '0000:00:08.0/virtio-blk'
Error -1 while loading VM state

to reproduce the error I used the following hmp commands:
savevm snap1
loadvm snap1

qemu parameters:
--enable-kvm -smp 4 -m 1024 -drive file=/var/lib/libvirt/images/centos6.4.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,aio=native -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x8,drive=drive-virtio-disk0,id=virtio-disk0 -set device.virtio-disk0.x-data-plane=on

Signed-off-by: Pavel Butsykin <pbutsykin@virtuozzo.com>
Signed-off-by: Denis V. Lunev <den@openvz.org>
Message-id: 1445859777-2982-1-git-send-email-den@openvz.org
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: "Michael S. Tsirkin" <mst@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
CC: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit 10a06fd65f)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2015-10-31 12:39:47 -05:00
..
Makefile.objs virtio-scsi-dataplane: Code to run virtio-scsi on iothread 2014-09-30 11:11:20 +02:00
esp-pci.c scsi: Convert remaining PCI HBAs to realize() 2015-03-10 11:18:23 +01:00
esp.c esp: Do not overwrite ESP_TCHI after reset 2014-11-12 10:27:03 +01:00
lsi53c895a.c scsi: Convert remaining PCI HBAs to realize() 2015-03-10 11:18:23 +01:00
megasas.c megasas: Add write function to handle write access to PCI BAR 3 2015-07-27 23:05:49 +02:00
mfi.h megasas: add MegaRAID SAS 2108 emulation 2014-10-31 11:29:00 +01:00
scsi-bus.c scsi: fix buffer overflow in scsi_req_parse_cdb (CVE-2015-5158) 2015-07-24 13:57:44 +02:00
scsi-disk.c scsi-disk: Fix assertion failure on WRITE SAME 2015-10-17 18:03:09 -05:00
scsi-generic.c scsi: Drop superfluous conditionals around g_free() 2014-12-15 12:21:02 +01:00
spapr_vscsi.c spapr_vio: Convert to realize() 2015-03-09 15:00:07 +01:00
srp.h spapr-vscsi: add task management 2013-09-12 08:46:21 +02:00
vhost-scsi.c vhost-scsi: fix wrong vhost-scsi firmware path 2015-10-17 23:15:39 -05:00
viosrp.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
virtio-scsi-dataplane.c virtio-scsi-dataplane: fix memory leak for VirtIOSCSIVring 2015-03-26 14:23:16 +01:00
virtio-scsi.c virtio: sync the dataplane vring state to the virtqueue before virtio_save 2015-10-31 12:39:47 -05:00
vmw_pvscsi.c pci: Don't register a specialized 'config_write' if default behavior is intended 2015-06-19 12:17:49 +02:00
vmw_pvscsi.h scsi: VMWare PVSCSI paravirtual device implementation 2013-04-19 10:44:17 +02:00