From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58480) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UwMHV-0005l2-My for qemu-devel@nongnu.org; Mon, 08 Jul 2013 20:59:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UwMHU-0006Lq-Nx for qemu-devel@nongnu.org; Mon, 08 Jul 2013 20:59:49 -0400 Received: from mail-gg0-f178.google.com ([209.85.161.178]:53751) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UwMHU-0006Ll-Kb for qemu-devel@nongnu.org; Mon, 08 Jul 2013 20:59:48 -0400 Received: by mail-gg0-f178.google.com with SMTP id l12so1784975gge.23 for ; Mon, 08 Jul 2013 17:59:48 -0700 (PDT) Message-ID: <51DB607D.1020201@ozlabs.ru> Date: Tue, 09 Jul 2013 10:59:41 +1000 From: Alexey Kardashevskiy MIME-Version: 1.0 References: <1372315560-5478-1-git-send-email-aik@ozlabs.ru> <1372315560-5478-6-git-send-email-aik@ozlabs.ru> <871u78299c.fsf@codemonkey.ws> <51DB5413.8020101@ozlabs.ru> In-Reply-To: Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 05/17] pseries: savevm support for XICS interrupt controller List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Anthony Liguori , Alexander Graf , qemu-devel , qemu-ppc@nongnu.org, Paolo Bonzini , Paul Mackerras , David Gibson On 07/09/2013 10:49 AM, Anthony Liguori wrote: > On Mon, Jul 8, 2013 at 7:06 PM, Alexey Kardashevskiy 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. Ok, thanks. > You should consider splitting the implementations up into separate > files just like i8259 too. I already split it to xics and xics-kvm devices so you are are definitely talking about something else but I do not understand what exactly... > 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 >> -- Alexey