Re: [Qemu-devel] [PATCH v2 1/1] s390x/css: catch section mismatch on load

2017-05-23 Thread Christian Borntraeger
On 05/23/2017 02:18 PM, Cornelia Huck wrote:
> On Thu, 18 May 2017 13:14:05 +0200
> Halil Pasic  wrote:
> 
>> Prior to the virtio-ccw-2.7 machine (and commit 2a79eb1a), our virtio
>> devices residing under the virtual-css bus do not have qdev_path based
>> migration stream identifiers (because their qdev_path is NULL). The ids
>> are instead generated when the device is registered as a composition of
>> the so called idstr, which takes the vmsd name as its value, and an
>> instance_id, which is which is calculated as a maximal instance_id
>> registered with the same idstr plus one, or zero (if none was registered
>> previously).
>>
>> That means, under certain circumstances, one device might try, and even
>> succeed, to load the state of a different device. This can lead to
>> trouble.
>>
>> Let us fail the migration if the above problem is detected during load.
>>
>> How to reproduce the problem:
>> 1) start qemu-system-s390x making sure you have the following devices
>>defined on your command line:
>>  -device virtio-rng-ccw,id=rng1,devno=fe.0.0001
>>  -device virtio-rng-ccw,id=rng2,devno=fe.0.0002
>> 2) detach the devices and reattach in reverse order using the monitor:
>>  (qemu) device_del rng1
>>  (qemu) device_del rng2
>>  (qemu) device_add virtio-rng-ccw,id=rng2,devno=fe.0.0002
>>  (qemu) device_add virtio-rng-ccw,id=rng1,devno=fe.0.0001
>> 3) save the state of the vm into a temporary file and quit QEMU:
>>  (qemu) migrate "exec:gzip -c > /tmp/tmp_vmstate.gz"
>>  (qemu) q
>> 4) use your command line from step 1 with
>>  -incoming "exec:gzip -c -d /tmp/tmp_vmstate.gz"
>>appended to reproduce the problem (while trying to to load the saved vm)
>>
>> CC: qemu-sta...@nongnu.org
>> Signed-off-by: Halil Pasic 
>> Reviewed-by: Dong Jia Shi 
> 
> Hum, missed that one for my pull request, sorry.
> 
> Reviewed-by: Cornelia Huck 
> 
> Christian, can you please pick for the next set of s390x patches?

applied to my tree, Thanks.




Re: [Qemu-devel] [PATCH v2 1/1] s390x/css: catch section mismatch on load

2017-05-23 Thread Cornelia Huck
On Thu, 18 May 2017 13:14:05 +0200
Halil Pasic  wrote:

> Prior to the virtio-ccw-2.7 machine (and commit 2a79eb1a), our virtio
> devices residing under the virtual-css bus do not have qdev_path based
> migration stream identifiers (because their qdev_path is NULL). The ids
> are instead generated when the device is registered as a composition of
> the so called idstr, which takes the vmsd name as its value, and an
> instance_id, which is which is calculated as a maximal instance_id
> registered with the same idstr plus one, or zero (if none was registered
> previously).
> 
> That means, under certain circumstances, one device might try, and even
> succeed, to load the state of a different device. This can lead to
> trouble.
> 
> Let us fail the migration if the above problem is detected during load.
> 
> How to reproduce the problem:
> 1) start qemu-system-s390x making sure you have the following devices
>defined on your command line:
>  -device virtio-rng-ccw,id=rng1,devno=fe.0.0001
>  -device virtio-rng-ccw,id=rng2,devno=fe.0.0002
> 2) detach the devices and reattach in reverse order using the monitor:
>  (qemu) device_del rng1
>  (qemu) device_del rng2
>  (qemu) device_add virtio-rng-ccw,id=rng2,devno=fe.0.0002
>  (qemu) device_add virtio-rng-ccw,id=rng1,devno=fe.0.0001
> 3) save the state of the vm into a temporary file and quit QEMU:
>  (qemu) migrate "exec:gzip -c > /tmp/tmp_vmstate.gz"
>  (qemu) q
> 4) use your command line from step 1 with
>  -incoming "exec:gzip -c -d /tmp/tmp_vmstate.gz"
>appended to reproduce the problem (while trying to to load the saved vm)
> 
> CC: qemu-sta...@nongnu.org
> Signed-off-by: Halil Pasic 
> Reviewed-by: Dong Jia Shi 

Hum, missed that one for my pull request, sorry.

Reviewed-by: Cornelia Huck 

Christian, can you please pick for the next set of s390x patches?