• J
    virtio-pci: fix 1.0 virtqueue migration · a6df8adf
    Jason Wang 提交于
    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: NJason Wang <jasowang@redhat.com>
    Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
    Reviewed-by: NCornelia Huck <cornelia.huck@de.ibm.com>
    a6df8adf
virtio-bus.h 4.1 KB