[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 09/10] s390x/css: turn on channel subsystem migr
From: |
Halil Pasic |
Subject: |
Re: [Qemu-devel] [PATCH 09/10] s390x/css: turn on channel subsystem migration |
Date: |
Tue, 9 May 2017 19:27:25 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 05/08/2017 08:37 PM, Dr. David Alan Gilbert wrote:
> * Halil Pasic (address@hidden) wrote:
>>
>>
>> On 05/08/2017 07:27 PM, Dr. David Alan Gilbert wrote:
>>> * Halil Pasic (address@hidden) wrote:
>>>> Turn on migration for the channel subsystem and the new scheme for
>>>> migrating virtio-ccw proxy devices (instead of letting the transport
>>>> independent child device migrate it's proxy, use the usual
>>>> DeviceClass.vmsd mechanism) for future machine versions.
>>
>> [..]
>>
>>>> @@ -1365,6 +1373,11 @@ static void virtio_ccw_device_plugged(DeviceState
>>>> *d, Error **errp)
>>>> sch->id.cu_model = virtio_bus_get_vdev_id(&dev->bus);
>>>>
>>>>
>>>> + /* Avoid generating unknown section for legacy migration target. */
>>>> + if (!css_migration_enabled()) {
>>>> + DEVICE_GET_CLASS(ccw_dev)->vmsd = NULL;
>>>> + }
>>>> +
>>>
>>> That's a very odd thing to do; can't you use a .needed at the
>>> top level of the vmstate_virtio_ccw_dev to avoid having to
>>> set it to NULL like this?
>>>
>>
>> I agree it's odd. As far as I remember I can't use .needed but
>> I will double check.
>
> You can have top level .needed's - both vmstate_globalstate in
> migration.c and colo's colo_state use them.
>
Works like charm. I'm really happy to get rid of this ugly hunk. Thanks
a lot!
I was probably confused by the fact that I want to use the same vmsd with
vmstate_save_state when the needed is false. That works, but I have probably
blindly assumed (back then) it does not. Of course it does make sense to
ignore .needed in that function, because for a vmsd coming from a
recursive call while processing a filed then the non-presence of a field
should be indicated by field_exists.
I wonder if adding a comment at the definition site would be helpful.
Something like:
struct VMStateDescription {
....
void (*pre_save)(void *opaque);
+ /* Controls the existence of sections and subsections, but not fields. */
bool (*needed)(void *opaque);
VMStateField *fields;
const VMStateDescription **subsections;
};
Halil
> Dave
>
>> Many thanks for your review!
>>
>> Halil
>>
> --
> Dr. David Alan Gilbert / address@hidden / Manchester, UK
>
- Re: [Qemu-devel] [PATCH 06/10] virtio-ccw: use vmstate way for config migration, (continued)
[Qemu-devel] [PATCH 07/10] s390x/css: remove unused subch_dev_(load|save), Halil Pasic, 2017/05/05
[Qemu-devel] [PATCH 08/10] s390x/css: add ORB to SubchDev, Halil Pasic, 2017/05/05
[Qemu-devel] [PATCH 10/10] s390x/css: use SubchDev.orb, Halil Pasic, 2017/05/05
[Qemu-devel] [PATCH 09/10] s390x/css: turn on channel subsystem migration, Halil Pasic, 2017/05/05