mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 23:03:54 -06:00

We don't migrate the followings fields for virtio-pci: uint32_t dfselect; uint32_t gfselect; uint32_t guest_features[2]; struct { uint16_t num; bool enabled; uint32_t desc[2]; uint32_t avail[2]; uint32_t used[2]; } vqs[VIRTIO_QUEUE_MAX]; This will confuse driver if migrating during initialization. Solves this issue by: - introduce transport specific callbacks to load and store extra virtqueue states. - add a new subsection for virtio to migrate transport specific modern device state. - implement pci specific callbacks. - add a new property for virtio-pci for whether or not to migrate extra state. - compat the migration for 2.4 and elder machine types Cc: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
72 lines
2 KiB
C
72 lines
2 KiB
C
#ifndef HW_COMPAT_H
|
|
#define HW_COMPAT_H
|
|
|
|
#define HW_COMPAT_2_4 \
|
|
{\
|
|
.driver = "virtio-blk-device",\
|
|
.property = "scsi",\
|
|
.value = "true",\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "migrate-extra",\
|
|
.value = "off",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_3 \
|
|
{\
|
|
.driver = "virtio-blk-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-balloon-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-serial-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-9p-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-rng-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},
|
|
|
|
#define HW_COMPAT_2_2 \
|
|
/* empty */
|
|
|
|
#define HW_COMPAT_2_1 \
|
|
{\
|
|
.driver = "intel-hda",\
|
|
.property = "old_msi_addr",\
|
|
.value = "on",\
|
|
},{\
|
|
.driver = "VGA",\
|
|
.property = "qemu-extended-regs",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "secondary-vga",\
|
|
.property = "qemu-extended-regs",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "virtio-scsi-pci",\
|
|
.property = "any_layout",\
|
|
.value = "off",\
|
|
},{\
|
|
.driver = "usb-mouse",\
|
|
.property = "usb_version",\
|
|
.value = stringify(1),\
|
|
},{\
|
|
.driver = "usb-kbd",\
|
|
.property = "usb_version",\
|
|
.value = stringify(1),\
|
|
},{\
|
|
.driver = "virtio-pci",\
|
|
.property = "virtio-pci-bus-master-bug-migration",\
|
|
.value = "on",\
|
|
},
|
|
|
|
#endif /* HW_COMPAT_H */
|