[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH/s390-next 3/3] s390x/flic: migrate ais states
From: |
Christian Borntraeger |
Subject: |
Re: [Qemu-devel] [PATCH/s390-next 3/3] s390x/flic: migrate ais states |
Date: |
Thu, 13 Jul 2017 15:02:08 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 |
On 07/13/2017 02:27 PM, Cornelia Huck wrote:
> On Thu, 13 Jul 2017 12:40:29 +0200
> Christian Borntraeger <address@hidden> wrote:
>
>> From: Yi Min Zhao <address@hidden>
>>
>> During migration we should transfer ais states to the target guest.
>> This patch introduces a subsection to kvm_s390_flic_vmstate and new
>> vmsd for qemu_flic. The ais states need to be migrated only when
>> ais is supported.
>>
>> Signed-off-by: Yi Min Zhao <address@hidden>
>> Signed-off-by: Christian Borntraeger <address@hidden>
>> ---
>> hw/intc/s390_flic.c | 20 ++++++++++++
>> hw/intc/s390_flic_kvm.c | 75
>> ++++++++++++++++++++++++++++++++++++++++++++
>> include/hw/s390x/s390_flic.h | 1 +
>> 3 files changed, 96 insertions(+)
>>
>
>> diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c
>> index d93503f..4cf73ee 100644
>> --- a/hw/intc/s390_flic_kvm.c
>> +++ b/hw/intc/s390_flic_kvm.c
>> @@ -413,7 +413,78 @@ out:
>> return r;
>> }
>>
>> +typedef struct KVMS390FLICStateMigTmp {
>> + KVMS390FLICState *parent;
>> + uint8_t simm;
>> + uint8_t nimm;
>> +} KVMS390FLICStateMigTmp;
>> +
>> +static void kvm_flic_ais_pre_save(void *opaque)
>> +{
>> + KVMS390FLICStateMigTmp *tmp = opaque;
>> + KVMS390FLICState *flic = tmp->parent;
>> + struct kvm_s390_ais_all ais;
>> + struct kvm_device_attr attr = {
>> + .group = KVM_DEV_FLIC_AISM_ALL,
>> + .addr = (uint64_t)&ais,
>> + .attr = sizeof(ais),
>> + };
>> +
>> + if (ioctl(flic->fd, KVM_GET_DEVICE_ATTR, &attr)) {
>> + error_report("Failed to retrieve kvm flic ais states");
>
> There's not much else we can do in that case, is there?
>
>> + return;
>> + }
>> +
>> + tmp->simm = ais.simm;
>> + tmp->nimm = ais.nimm;
>> +}
>> +
>> +static int kvm_flic_ais_post_load(void *opaque, int version_id)
>> +{
>> + KVMS390FLICStateMigTmp *tmp = opaque;
>> + KVMS390FLICState *flic = tmp->parent;
>> + struct kvm_s390_ais_all ais = {
>> + .simm = tmp->simm,
>> + .nimm = tmp->nimm,
>> + };
>> + struct kvm_device_attr attr = {
>> + .group = KVM_DEV_FLIC_AISM_ALL,
>> + .addr = (uint64_t)&ais,
>> + };
>> +
>> + if (!ais_needed(flic)) {
>> + return -ENOSYS;
>> + }
>
> I do not understand this... does that mean that
> - we should never get here or
> - we should not try to change the fields or
> - I need coffee?
My understanding is that this should not happen with a normal setup,
but it can happen if the user does something "wrong". For example
use qemu without libvirt and with -cpu host (which is not migration safe)
and do a migration from a host that has AIS to a host that has no AIS.
In that case the target system will reject the migration (late, but hopefully
not too late).
- Re: [Qemu-devel] [PATCH/s390-next 2/3] s390x/cpumodel: add zpci, aen and ais facilities, (continued)
- Re: [Qemu-devel] [PATCH/s390-next 2/3] s390x/cpumodel: add zpci, aen and ais facilities, Cornelia Huck, 2017/07/13
- Re: [Qemu-devel] [PATCH/s390-next 2/3] s390x/cpumodel: add zpci, aen and ais facilities, Christian Borntraeger, 2017/07/13
- Re: [Qemu-devel] [PATCH/s390-next 2/3] s390x/cpumodel: add zpci, aen and ais facilities, Cornelia Huck, 2017/07/13
- Re: [Qemu-devel] [PATCH/s390-next 2/3] s390x/cpumodel: add zpci, aen and ais facilities, Christian Borntraeger, 2017/07/13
- Re: [Qemu-devel] [PATCH/s390-next 2/3] s390x/cpumodel: add zpci, aen and ais facilities, Cornelia Huck, 2017/07/13
- Re: [Qemu-devel] [PATCH/s390-next 2/3] s390x/cpumodel: add zpci, aen and ais facilities, Christian Borntraeger, 2017/07/13
- Re: [Qemu-devel] [PATCH/s390-next 2/3] s390x/cpumodel: add zpci, aen and ais facilities, Cornelia Huck, 2017/07/13
- Re: [Qemu-devel] [PATCH/s390-next 2/3] s390x/cpumodel: add zpci, aen and ais facilities, Halil Pasic, 2017/07/13
[Qemu-devel] [PATCH/s390-next 3/3] s390x/flic: migrate ais states, Christian Borntraeger, 2017/07/13
Re: [Qemu-devel] [PATCH/s390-next 3/3] s390x/flic: migrate ais states, Halil Pasic, 2017/07/13
Re: [Qemu-devel] [PATCH/s390-next 3/3] s390x/flic: migrate ais states, Dr. David Alan Gilbert, 2017/07/13
Re: [Qemu-devel] [PATCH/s390-next 3/3] s390x/flic: migrate ais states, Christian Borntraeger, 2017/07/13
Re: [Qemu-devel] [PATCH/s390-next 3/3] s390x/flic: migrate ais states, Dr. David Alan Gilbert, 2017/07/13
Re: [Qemu-devel] [PATCH/s390-next 3/3] s390x/flic: migrate ais states, Halil Pasic, 2017/07/13
Re: [Qemu-devel] [PATCH/s390-next 3/3] s390x/flic: migrate ais states, Dr. David Alan Gilbert, 2017/07/13