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>
73 lines
2.0 KiB
C
73 lines
2.0 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 */
|