qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 05/17] pseries: savevm support for XICS interrup


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH 05/17] pseries: savevm support for XICS interrupt controller
Date: Mon, 8 Jul 2013 19:49:15 -0500

On Mon, Jul 8, 2013 at 7:06 PM, Alexey Kardashevskiy <address@hidden> wrote:
>> You should tie the vmstate section to DeviceState::vmsd.  You only need
>> to do this because you haven't converted everything to QOM yet.
>>
>> Please do that to avoid these hacks.
>
>
> How? I want to support migration from xics to xics-kvm and vice versa.
> vmsd cannot be inherited and even if they could, different device names
> would kill that support.

Please look at hw/intc/i8259_common.c and then hw/i386/kvm/i8259.c and
hw/i386/intc/i8259.c.

The vmsd is in the common base class shared between the KVM version
and the non-KVM version.  As long as the subclasses don't introduce
any new state members, you can safely migrate between the two devices.

You should consider splitting the implementations up into separate
files just like i8259 too.

Regards,

Anthony Liguori

>
>
>>
>> Regards,
>>
>> Anthony Liguori
>>
>>>  }
>>>
>>>  void xics_common_init(struct icp_state *icp, qemu_irq_handler handler)
>>> @@ -555,6 +614,10 @@ static void xics_realize(DeviceState *dev, Error 
>>> **errp)
>>>      spapr_rtas_register("ibm,int-off", rtas_int_off);
>>>      spapr_rtas_register("ibm,int-on", rtas_int_on);
>>>
>>> +    /* We use each the ICS's offset into the global irq number space
>>> +     * as an instance id.  This means we can extend to multiple ICS
>>> +     * instances without needing to change the savevm format */
>>> +    vmstate_register(NULL, icp->ics->offset, &vmstate_ics, icp->ics);
>>>  }
>>>
>>>  static Property xics_properties[] = {
>>> --
>>> 1.7.10.4
>>
>
>
> --
> Alexey
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]