While I investigated and reproduced the problem, the qemu process itself
did not crash/abort. I observed that a Linux guest (KVM virtual machine)
became unresponsive after a migration because requests to a virtio disk
did not complete.
If virtio_load() returns via the following section of code ...
if (virtio_set_features(vdev, features) < 0) {
supported_features = vdev->binding->get_features(vdev->binding_opaque);
error_report("Features 0x%x unsupported. Allowed features: 0x%x",
features, supported_features);
return -1;
}
... various data structures are not fully set up. Execution of the above
code is - for example - triggered by passing "scsi=on" to the source qemu
and "scsi=off" to the destination qemu process. Since the data structures
are in an incomplete state, virtio disk requests from the guest cannot be
processed.
Regards,
Uli
----- Original Message -----
> From: "Orit Wasserman" <[email protected]>
...
> Sent: Thursday, March 1, 2012 12:28:08 PM
> Subject: [PATCH v2] We should check the virtio_load return code
>
> Otherwise we crash on error.
> Instruction to reporduce the crash with migration:
> 1) run a guest with -device virtio-blk-pci,drive=drive_name,scsi=on
> 2) run destination with
> -device virtio-blk-pci,drive=drive_name,scsi=off ... -incoming ...
> 3) migrate from 1 to 2.
>
> Signed-off-by: Ulrich Obergfell <[email protected]>
> Signed-off-by: Orit Wasserman <[email protected]>
...